рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ BDD: SpecFlow+TFS

SpecFlow рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ, рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрди TFS рдХрд╕рд░реА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдзреЗрд░реИ рд▓реЗрдЦрд╣рд░реВ рдЫрдиреН, рддрд░ рддреНрдпрд╣рд╛рдБ рд╕рдмреИ рдкрдХреНрд╖рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рдЫреИрдиред рдпрд╕ рд▓реЗрдЦрдорд╛, рдо рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдХрд╕рд░реА SpecFlow рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрди рд░ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреЗ рд╕рдмреИрдХрд╛ рд▓рд╛рдЧрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗрд░ рдмрддрд╛рдЙрдиреЗрдЫреБред

рдХрдЯ рддрд▓ рддрдкрд╛рдЗрдБ рдХрд╕рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рд┐рдХреНрдиреБрд╣реБрдиреЗрдЫ:

  • TFS рдмрд╛рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ
  • TFS рдорд╛ рдХреЗрд╕рд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓рд┐рдЩреНрдХрд┐рдЩ
  • TFS рдорд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕рд╣рд░реВрдХреЛ рд╕рдБрдзреИ рдЕрдк-рдЯреБ-рдбреЗрдЯ рд╕рд╛рдордЧреНрд░реА
  • рдкрд░реАрдХреНрд╖рдХрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╕рд┐рдзреИ рд▓рд┐рдкрд┐рд╣рд░реВ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛
    рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ BDD: SpecFlow+TFS

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕

рд╣рд╛рдореАрд▓реЗ BDD рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдпреМрдВред рд╣рд╛рдореНрд░реЛ рдХрдореНрдкрдиреАрдорд╛ рдЯрд╛рд╕реНрдХ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЖрдзрд╛рд░ TFS рднрдПрдХреЛрд▓реЗ, рдореЗрд░реЛ рдЯрд╛рдЙрдХреЛрдорд╛ рдПрдЙрдЯрд╛ рддрд╕реНрд╡реАрд░ рдерд┐рдпреЛ рдЬрд╣рд╛рдБ SpecFlow рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рдЪрд░рдгрд╣рд░реВ TFS рдорд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕рд╣рд░реВрдХреЛ рдЪрд░рдгрд╣рд░реВ рд╣реБрдиреН, рд░ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдпреЛрдЬрдирд╛рд╣рд░реВрдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░рд┐рдиреНрдЫред рддрд▓ рдореИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗрдВред

рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ:

  1. SpecFlow рдорд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдХреЛ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛
  2. Azure DevOps рд╕рд░реНрднрд░ (рдЙрд░реНрдл рдЯреАрдо рдлрд╛рдЙрдиреНрдбреЗрд╢рди рд╕рд░реНрднрд░)
  3. TFS рдорд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕рд╣рд░реВрд╕рдБрдЧ SpecFlow рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рдЙрдкрдХрд░рдг

рд╕рдорд╛рдпреЛрдЬрди

1. рдкрд░реАрдХреНрд╖рдг рд╕рдВрдЧ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг рд╕рд┐рд░реНрдЬрдирд╛

рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рд╕рд░рд▓ рдЫ, рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд░ рдкреНрд░рдХрд╛рд╢рдиред рддреЗрд╕реНрд░реЛ рдХрд╛рд░реНрдпрдХреЛ рдмрд╛рд░реЗрдорд╛ рдкрдЫрд┐ред

рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ BDD: SpecFlow+TFS

2. рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рд░рд┐рд▓реАрдЬ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

рдПрдЙрдЯрд╛ рдХрд╛рд░реНрдпрдХреЛ рд╕рд╛рде рд░рд┐рд▓реАрдЬ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ - рднрд┐рдЬреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдпреЛ рдкрд░реАрдХреНрд╖рдг

рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ BDD: SpecFlow+TFS

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдХрд╛рд░реНрдп рдкрд░реАрдХреНрд╖рдг рдпреЛрдЬрдирд╛рдмрд╛рдЯ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрди рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ

рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ BDD: SpecFlow+TFS

3. рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕рд╣рд░реВрдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди

рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рднрд┐рдЬреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдпреЛрд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ TFS рдорд╛ рдХреЗрд╕рд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд░ рдкрд░реАрдХреНрд╖рдг рдпреЛрдЬрдирд╛рд╣рд░реВрдмрд╛рдЯ рдЪрд▓рд╛рдЙрди рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд┐рдЩреНрдХ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпреЛ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд░ рд▓рд┐рдкрд┐рд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реА рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рдХрдиреНрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЗрдЦреЗрдВред FeatureSyncред рд╕рд┐рджреНрдзрд╛рдиреНрдд рд╕рд░рд▓ рдЫ - рд╣рд╛рдореА рд╕реБрд╡рд┐рдзрд╛ рдлрд╛рдЗрд▓рд▓рд╛рдИ рдкрд╛рд░реНрд╕ рдЧрд░реНрдЫреМрдВ рд░ 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

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдпрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХрд╛ рдлрд╛рдЗрджрд╛рд╣рд░реВ:

  • рдХреБрдиреИ рдкрдирд┐ рдкрд░реАрдХреНрд╖рдХрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рд╡реЗрдм рдлрд╛рд░рдордорд╛ fetaure рдлрд╛рдЗрд▓ рдЦреЛрд▓реНрди рд╕рдХреНрдЫ, рдпрд╕рд▓рд╛рдИ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдкрдЫрд┐ рддреБрд░реБрдиреНрддреИ рд▓рд╛рдЧреВ рд╣реБрдиреЗрдЫред
  • рддрдкрд╛рдИрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
  • рдкрд╛рд░рджрд░реНрд╢реА рдкрд░реАрдХреНрд╖рдг рдореЛрдбреЗрд▓ - рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдзреИрдВ рдерд╛рд╣рд╛ рд╣реБрдиреНрдЫ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рд╕реБрд░реБ рдЧрд░реЗрдХреЛ рдкрд░реАрдХреНрд╖рдгрд▓реЗ рдХреЗ рдЧрд░реНрдЫред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди