ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

SpecFlow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด TFS๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋งŽ์€ ๊ธฐ์‚ฌ๊ฐ€ ์ธํ„ฐ๋„ท์— ์žˆ์ง€๋งŒ ๋ชจ๋“  ์ธก๋ฉด์„ ํฌํ•จํ•˜๋Š” ๊ธฐ์‚ฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” SpecFlow ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํŽธ๋ฆฌํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ปท ์•„๋ž˜์—์„œ๋Š” ๋‹ค์Œ์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  • TFS์—์„œ ํ…Œ์ŠคํŠธ ์‹คํ–‰
  • TFS์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ์Šคํฌ๋ฆฝํŠธ ์ž๋™ ์—ฐ๊ฒฐ
  • TFS์˜ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ํ•ญ์ƒ ์ตœ์‹  ์ฝ˜ํ…์ธ 
  • ํ…Œ์Šคํ„ฐ๊ฐ€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ์ง์ ‘ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๊ธฐ๋Šฅ
    ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

์„ ์‚ฌ ์‹œ๋Œ€

์šฐ๋ฆฌ๋Š” BDD ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ์ž‘์—…์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํšŒ์‚ฌ ์ž‘์—… ์ถ”์  ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ์ด TFS์ด๊ธฐ ๋•Œ๋ฌธ์— SpecFlow ์Šคํฌ๋ฆฝํŠธ์˜ ๋‹จ๊ณ„๊ฐ€ TFS์˜ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€ ๋‹จ๊ณ„์ด๊ณ  ํ…Œ์ŠคํŠธ ๊ณ„ํš์—์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ์ž‘๋˜๋Š” ๊ทธ๋ฆผ์ด ๋จธ๋ฆฟ์†์— ๋– ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ œ๊ฐ€ ๊ตฌํ˜„ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ๊ฒƒ:

  1. SpecFlow์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ
  2. Azure DevOps ์„œ๋ฒ„(Team Foundation Server๋ผ๊ณ ๋„ ํ•จ)
  3. SpecFlow ์Šคํฌ๋ฆฝํŠธ๋ฅผ TFS์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์™€ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ

์กฐ์ •

1. ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋งŒ๋“ค๊ธฐ

์—ฌ๊ธฐ์—์„œ๋Š” ์œ ๋ฌผ์„ ์กฐ๋ฆฝํ•˜๊ณ  ์ถœํŒํ•˜๋Š” ๋“ฑ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ์ž‘์—…์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

2. ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์œ„ํ•œ ๋ฆด๋ฆฌ์Šค ์ƒ์„ฑ

ํ•˜๋‚˜์˜ ์ž‘์—…์œผ๋กœ ๋ฆด๋ฆฌ์Šค ๋งŒ๋“ค๊ธฐ - Visual Studio Test

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

์ด ๊ฒฝ์šฐ ์ž‘์—…์€ ํ…Œ์ŠคํŠธ ๊ณ„ํš์—์„œ ์ˆ˜๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

3. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋™๊ธฐํ™”

Visual Studio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ๋ฅผ TFS์˜ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€์— ์—ฐ๊ฒฐํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๊ณ„ํš์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ์Šคํฌ๋ฆฝํŠธ ๋‚ด์šฉ์„ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ์ฝ˜์†” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ๋™๊ธฐํ™”. ์›์น™์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. TFS API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

FeatureSync ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

๊ธฐ๋Šฅ ํŒŒ์ผ ํ—ค๋”์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ๋กœ์บ˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

#language:en
@Namespace:Application.Autotests
Feature: Log to application

*๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋œ .dll ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

TFS์—์„œ ๋นˆ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•ด๋‹น ID๊ฐ€ ํฌํ•จ๋œ ํƒœ๊ทธ๋ฅผ ์Šคํฌ๋ฆฝํŠธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

@2124573 @posistive
Scenario: Successful authorization
    Given I on authorization page
    And I enter:
        | Login | Password |
        | user  | pass     |
    When I press Login button
    Then Browser redirect on Home page

FeatureSync ์‹คํ–‰:

FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•œ ํ›„ ์‹คํ–‰์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

๋™๊ธฐํ™” ๊ฒฐ๊ณผ

SpecFlow ์Šคํฌ๋ฆฝํŠธ ๋‹จ๊ณ„๊ฐ€ ๋™๊ธฐํ™”๋˜๊ณ  ์ž๋™ํ™” ์ƒํƒœ๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

4. ํ…Œ์ŠคํŠธ ๊ณ„ํš ์ˆ˜๋ฆฝ

ํ…Œ์ŠคํŠธ ๊ณ„ํš์„ ์ž‘์„ฑํ•˜๊ณ , ์ž๋™ํ™”๋œ ์‚ฌ๋ก€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์„ค์ •์—์„œ ๋นŒ๋“œ ๋ฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

5. ํ…Œ์ŠคํŠธ ์‹คํ–‰

ํ…Œ์ŠคํŠธ ๊ณ„ํš์—์„œ ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ BDD: SpecFlow+TFS

๊ฒฐ๋ก 

์ด ๊ตฌ์„ฑ์˜ ์žฅ์ :

  • ๋ชจ๋“  ํ…Œ์Šคํ„ฐ๋Š” ๋ฒ„์ „ ์ œ์–ด ์›น ์–‘์‹์—์„œ fetaure ํŒŒ์ผ์„ ์—ด๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋นŒ๋“œ ํ›„ ์ฆ‰์‹œ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์–ธ์ œ๋“ ์ง€ ๊ฐœ๋ณ„์ ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํˆฌ๋ช…ํ•œ ํ…Œ์ŠคํŠธ ๋ชจ๋ธ - ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‹œ์ž‘ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ํ•ญ์ƒ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€