BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

เบกเบตเบซเบผเบฒเบเบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเปƒเบŠเป‰ SpecFlow, เบงเบดเบ—เบตเบเบฒเบ™ configure TFS เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เปเบ•เปˆเบšเปเปˆเบกเบตเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ—เบธเบเบ”เป‰เบฒเบ™. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบงเบดเบ—เบตเบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบชเบฐเบ„เบดเบš SpecFlow เบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™.

เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบเบฒเบ™เบ•เบฑเบ”, เบ—เปˆเบฒเบ™เบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš:

  • เปเบฅเปˆเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบˆเบฒเบ TFS
  • เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบชเบฐเบ„เบดเบšเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบปเบ”เบชเบญเบšเปƒเบ™ TFS
  • เป€เบ™เบทเป‰เบญเบซเบฒเปƒเปเปˆเบชเบฐเป€เปเบตเบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบปเบ”เบชเบญเบšเปƒเบ™ TFS
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเบฐเบ„เบดเบšเป‚เบ”เบเบเบปเบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบชเบฐเบšเบฑเบšเป‚เบ”เบเบœเบนเป‰เบ—เบปเบ”เบชเบญเบš
    BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

เบ›เบฐเบงเบฑเบ”เบชเบฒเบ”

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ BDD. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบงเบฝเบเบ‡เบฒเบ™เปƒเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™ TFS, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบกเบตเบฎเบนเบšเบžเบฒเบšเบขเบนเปˆเปƒเบ™เบซเบปเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบชเบฐเบ„เบดเบš SpecFlow เปเบกเปˆเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบปเบ”เบชเบญเบšเปƒเบ™ TFS, เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเบˆเบฒเบเปเบœเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ‚เป‰เบญเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™:

  1. เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเปˆเบฝเบงเบเบฑเบš SpecFlow
  2. เป€เบŠเบตเบšเป€เบงเบต Azure DevOps (aka Team Foundation Server)
  3. เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ synchronizing เบชเบฐเบ„เบดเบš SpecFlow เบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบปเบ”เบชเบญเบšเปƒเบ™ TFS

เบเบฒเบ™เบ›เบฑเบš

1. เบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš

เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐเบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบ‚เบญเบ‡เบ›เบญเบก. เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเบชเบฒเบกเบ•เปเปˆเบกเบฒ.

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

2. เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ›เปˆเบญเบเป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš

เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ”เป‰เบงเบเบงเบฝเบเบซเบ™เบถเปˆเบ‡ - Visual Studio Test

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เบˆเบฒเบโ€‹เปเบœเบ™โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

3. synchronization เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš

เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒ Visual Studio เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบงเบดเบ—เบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบเปเบฅเบฐเบ™เบตเปƒเบ™ TFS เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบฒเบเปเบœเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เป€เบฎเบฑเบ”เบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เปเบฅเบฐเป€เบžเบทเปˆเบญ synchronize เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบชเบฐเบ„เบดเบš, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ console เบ‡เปˆเบฒเบเบ”เบฒเบ. FeatureSync. เบซเบผเบฑเบเบเบฒเบ™เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ - เบžเบงเบเป€เบฎเบปเบฒเบงเบดเป€เบ„เบฒเบฐเป„เบŸเบฅเปŒเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป‚เบ”เบเปƒเบŠเป‰ TFS API.

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ FeatureSync

เป€เบžเบตเปˆเบก namespace เปเบฅเบฐเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบชเปˆเบชเปˆเบงเบ™เบซเบปเบงเป„เบŸเบฅเปŒเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”:

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

*namespace เบ•เป‰เบญเบ‡เบเบปเบ‡เบเบฑเบšเบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒ .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 เป„เบ”เป‰เบ–เบทเบ synchronized เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

4. เบงเบฒเบ‡เปเบœเบ™เบเบฒเบ™เบชเบญเบšเป€เบชเบฑเบ‡

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เปเบœเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เป€เบžเบตเปˆเบกเบเปเบฅเบฐเบ™เบตเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบชเปˆเบกเบฑเบ™, เป€เบฅเบทเบญเบเบชเป‰เบฒเบ‡เปเบฅเบฐเบ›เปˆเบญเบเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

5. เปเบฅเปˆเบ™เบ—เบปเบ”เบชเบญเบš

เป€เบฅเบทเบญเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เปเบœเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบกเบฑเบ™.

BDD เบ—เบตเปˆเบชเบฐเบ”เบงเบ: SpecFlow+TFS

เบชเบฐเบซเบฅเบธเบš

เบ‚เปเป‰เบ”เบตเบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰:

  • เบœเบนเป‰เบ—เบปเบ”เบชเบญเบšเปƒเบ”เป†เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เป„เบŸเบฅเปŒ fetaure เปƒเบ™เปเบšเบšเบŸเบญเบกเป€เบงเบฑเบšเบ„เบงเบšเบ„เบธเบกเบชเบฐเบšเบฑเบš, เปเบเป‰เป„เบ‚เบกเบฑเบ™เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบฐเบกเบตเบœเบปเบ™เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡.
  • เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เป„เบ”เป‰เบ—เบธเบเป€เบงเบฅเบฒ
  • เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป‚เบ›เปˆเบ‡เปƒเบช - เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบชเบฐเป€เปเบตเบงเปˆเบฒเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบงเป€เบฎเบฑเบ”เปเบกเปˆเบ™เบซเบเบฑเบ‡.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™