เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ BDD: SpecFlow+TFS

เด‡เตปเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ SpecFlow เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต TFS เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เด™เตเด™เดจเต† เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเดฐเดตเดงเดฟ เดฒเต‡เด–เดจเด™เตเด™เตพ เด‰เดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพ เดตเดถเด™เตเด™เดณเตเด‚ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจ เด’เดจเตเดจเดฟเดฒเตเดฒ. เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด™เตเด™เดจเต† เดธเตเดชเต†เด•เตเดซเตเดฒเต‹ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเดจเตเด‚ เดŽเดกเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด‚.

เด•เดŸเตเดŸเดฟเดจเต เดคเดพเดดเต† เดจเดฟเด™เตเด™เตพ เดŽเด™เตเด™เดจเต† เดจเต‡เดŸเดพเดฎเต†เดจเตเดจเต เดชเด เดฟเด•เตเด•เตเด‚:

  • TFS-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดจเดŸเดคเตเดคเตเดจเตเดจเต
  • TFS-เดฒเต† เดŸเต†เดธเตเดฑเตเดฑเต เด•เต‡เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดธเตเดตเดฏเดฎเต‡เดต เดฒเดฟเด™เตเด•เดฟเด‚เด—เต
  • TFS-เดฒเต† เดŸเต†เดธเตเดฑเตเดฑเต เด•เต‡เดธเตเด•เดณเตเดŸเต† เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เด•เดพเดฒเดฟเด•เดฎเดพเดฏ เด‰เดณเตเดณเดŸเด•เตเด•เด‚
  • เดŸเต†เดธเตเดฑเตเดฑเตผ เดฎเตเด–เต‡เดจ เดชเดคเดฟเดชเตเดชเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเดฟเตฝ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต
    เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ BDD: SpecFlow+TFS

เดšเดฐเดฟเดคเตเดฐเดพเดคเต€เดคเด•เดพเดฒเด‚

BDD เดธเดฎเต€เดชเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดšเตเดฎเดคเดฒ เดžเด™เตเด™เตพ เด…เดญเดฟเดฎเตเด–เต€เด•เดฐเดฟเดšเตเดšเต. เดžเด™เตเด™เดณเตเดŸเต† เด•เดฎเตเดชเดจเดฟเดฏเดฟเดฒเต† เดŸเดพเดธเตโ€Œเด•เต เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตปเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเด‚ TFS เด†เดฏเดคเดฟเดจเดพเตฝ, SpecFlow เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตปเตเดฑเต† เด˜เดŸเตเดŸเด™เตเด™เตพ TFS-เดฒเต† เดŸเต†เดธเตเดฑเตเดฑเต เด•เต‡เดธเตเด•เดณเตเดŸเต† เด˜เดŸเตเดŸเด™เตเด™เดณเดพเดฏเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดชเตเดฒเดพเดจเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเตเด‚ เดŽเตปเตเดฑเต† เดคเดฒเดฏเดฟเตฝ เด’เดฐเต เดšเดฟเดคเตเดฐเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดžเดพเตป เด…เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏ เดตเดฟเดงเด‚ เดคเดพเดดเต† เด•เตŠเดŸเตเด•เตเด•เตเดจเตเดจเต.

เดจเดฎเตเด•เตเด•เต เดตเต‡เดฃเตเดŸเดคเต:

  1. เดธเตเดชเต†เด•เตเดซเตเดฒเต‹เดฏเดฟเตฝ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดณเตเดณ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต
  2. Azure DevOps เดธเต†เตผเดตเตผ (เดŸเต€เด‚ เดซเต—เดฃเตเดŸเต‡เดทเตป เดธเต†เตผเดตเตผ)
  3. TFS-เดฒเต† เดŸเต†เดธเตเดฑเตเดฑเต เด•เต‡เดธเตเด•เดณเตเดฎเดพเดฏเดฟ SpecFlow เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดชเด•เดฐเดฃเด‚

เด•เดฎเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเต

1. เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฌเดฟเตฝเดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เด‡เดตเดฟเดŸเต† เดŽเดฒเตเดฒเดพเด‚ เดฒเดณเดฟเดคเดฎเดพเดฃเต, เดชเตเดฐเดพเดตเดธเตเดคเตเด•เตเด•เดณเตเดŸเต† เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฃเดตเตเด‚. เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต† เดŸเดพเดธเตเด•เตเด•เดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเดฟเดจเตเดจเต€เดŸเต.

เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ BDD: SpecFlow+TFS

2. เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดฑเดฟเดฒเต€เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เด’เดฐเต เดŸเดพเดธเตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดฑเดฟเดฒเต€เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต - เดตเดฟเดทเตเดตเตฝ เดธเตเดฑเตเดฑเตเดกเดฟเดฏเต‹ เดŸเต†เดธเตเดฑเตเดฑเต

เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ BDD: SpecFlow+TFS

เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดŸเต†เดธเตเดฑเตเดฑเต เดชเตเดฒเดพเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดŸเดพเดธเตเด•เต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต

เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ BDD: SpecFlow+TFS

3. เดŸเต†เดธเตเดฑเตเดฑเต เด•เต‡เดธเตเด•เดณเตเดŸเต† เดธเดฎเดจเตเดตเดฏเด‚

TFS-เตฝ เด•เต‡เดธเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดชเตเดฒเดพเดจเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเตบ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดฐเต€เดคเดฟเด•เตพ เดฒเดฟเด™เตเด•เต เดšเต†เดฏเตเดฏเดพเตป เดตเดฟเดทเตเดตเตฝ เดธเตเดฑเตเดฑเตเดกเดฟเดฏเต‹ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚. เด‡เดคเต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดšเต†เดฏเตเดฏเดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚, เดžเดพเตป เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด•เตบเดธเต‹เตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŽเดดเตเดคเดฟ เดซเต€เดšเตเดšเตผ เดธเดฎเดจเตเดตเดฏเด‚. เดคเดคเตเดตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฃเต - เดžเด™เตเด™เตพ เดซเต€เดšเตเดšเตผ เดซเดฏเตฝ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ TFS API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเต†เดธเตเดฑเตเดฑเต เด•เต‡เดธเตเด•เตพ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

FeatureSync เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚

เดซเต€เดšเตเดšเตผ เดซเดฏเตฝ เดนเต†เดกเดฑเดฟเดฒเต‡เด•เตเด•เต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด‚ เดฒเต‹เด•เตเด•เดฒเตเด‚ เดšเต‡เตผเด•เตเด•เตเด•:

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

*เดŸเต†เดธเตเดฑเตเดฑเต เดฐเต€เดคเดฟเด•เตพ เด…เดŸเด™เตเด™เตเดจเตเดจ .dll เดซเดฏเดฒเดฟเตปเตเดฑเต† เดชเต‡เดฐเตเดฎเดพเดฏเดฟ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚

เดžเด™เตเด™เตพ TFS-เตฝ เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดŸเต†เดธเตเดฑเตเดฑเต เด•เต†เดฏเตโ€Œเดธเตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด…เดตเดฏเตเดŸเต† เดเดกเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเดพเด—เตเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ 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.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

เดคเต€เดฐเตเดฎเดพเดจเด‚

เดˆ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตปเตเดฑเต† เด—เตเดฃเด™เตเด™เตพ:

  • เดเดคเตŠเดฐเต เดชเดฐเต€เด•เตเดทเด•เดจเตเด‚ เดชเดคเดฟเดชเตเดชเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดตเต†เดฌเต เดซเต‹เดฎเดฟเตฝ เดซเต†เดฑเตเดฑเต‹เตผ เดซเดฏเตฝ เดคเตเดฑเด•เตเด•เดพเดจเตเด‚ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚, เดฌเดฟเตฝเดกเต เด•เดดเดฟเดžเตเดžเดฏเตเดŸเดจเต† เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เดตเดฐเตเด‚
  • เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดชเตเดชเต‹เตพ เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเดฒเตเด‚ เดตเตเดฏเด•เตเดคเดฟเด—เดคเดฎเดพเดฏเดฟ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดจเดŸเดคเตเดคเดพเด‚
  • เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏ เดŸเต†เดธเตเดฑเตเดฑเต เดฎเต‹เดกเตฝ - เดžเด™เตเด™เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดš เดŸเต†เดธเตเดฑเตเดฑเต เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•