Maginhawang BDD: SpecFlow+TFS

Mayroong maraming mga artikulo sa Internet tungkol sa kung paano gamitin ang SpecFlow, kung paano i-configure ang TFS upang magpatakbo ng mga pagsubok, ngunit walang isa na naglalaman ng lahat ng mga aspeto. Sa artikulong ito, sasabihin ko sa iyo kung paano mo gagawing maginhawa para sa lahat ang paglulunsad at pag-edit ng mga script ng SpecFlow.

Sa ibaba ng hiwa matututunan mo kung paano makakuha ng:

  • Pagpapatakbo ng mga pagsubok mula sa TFS
  • Awtomatikong pag-link ng mga script sa mga kaso ng pagsubok sa TFS
  • Palaging napapanahon ang nilalaman ng mga kaso ng pagsubok sa TFS
  • Kakayahang mag-edit ng mga script nang direkta sa version control system ng mga tester
    Maginhawang BDD: SpecFlow+TFS

prehistory

Kami ay nahaharap sa gawain ng pag-automate ng pagsubok sa aplikasyon gamit ang diskarte sa BDD. Dahil ang batayan ng sistema ng pagsubaybay sa gawain sa aming kumpanya ay TFS, nagkaroon ako ng isang larawan sa aking isipan kung saan ang mga hakbang ng script ng SpecFlow ay ang mga hakbang ng mga kaso ng pagsubok sa TFS, at ang mga pagsubok ay inilunsad mula sa mga plano sa pagsubok. Nasa ibaba kung paano ko ito ipinatupad.

Ang kailangan natin:

  1. Proyekto na may mga pagsubok sa SpecFlow
  2. Azure DevOps Server (aka Team Foundation Server)
  3. Isang tool para sa pag-synchronize ng mga script ng SpecFlow sa mga test case sa TFS

pag-aayos

1. Paglikha ng pagbuo ng proyekto na may mga pagsubok

Ang lahat ay simple dito, pagpupulong at paglalathala ng mga artifact. Higit pa tungkol sa ikatlong gawain mamaya.

Maginhawang BDD: SpecFlow+TFS

2. Paglikha ng release para magpatakbo ng mga pagsubok

Paggawa ng release na may isang gawain - Visual Studio Test

Maginhawang BDD: SpecFlow+TFS

Sa kasong ito, ang gawain ay naka-configure na magpatakbo ng mga pagsubok nang manu-mano mula sa plano ng pagsubok

Maginhawang BDD: SpecFlow+TFS

3. Pag-synchronize ng mga test case

Alam namin na pinapayagan ka ng Visual Studio na i-link ang mga pamamaraan ng pagsubok upang subukan ang mga kaso sa TFS at patakbuhin ang mga ito mula sa mga plano sa pagsubok. Upang hindi gawin ito nang manu-mano, at upang mai-synchronize din ang nilalaman ng mga script, sumulat ako ng isang simpleng console application FeatureSync. Ang prinsipyo ay simple - pina-parse namin ang feature file at ina-update ang mga test case gamit ang TFS API.

Paano gamitin ang FeatureSync

Magdagdag ng namespace at locale sa feature na file header:

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

*Dapat tumugma ang namespace sa pangalan ng .dll file na naglalaman ng mga pamamaraan ng pagsubok

Gumagawa kami ng mga walang laman na kaso ng pagsubok sa TFS at nagdaragdag ng mga tag kasama ng kanilang id sa mga script:

Maginhawang 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

Ilunsad ang FeatureSync:

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

Sa aming kaso, ang paglulunsad ay nangyayari pagkatapos ng pagbuo ng proyekto na may mga pagsubok:

Maginhawang BDD: SpecFlow+TFS

Resulta ng pag-synchronize

Ang mga hakbang sa script ng SpecFlow ay naka-synchronize at nakatakda ang Automation status

Maginhawang BDD: SpecFlow+TFS

Maginhawang BDD: SpecFlow+TFS

4. Pagse-set up ng test plan

Gumagawa kami ng test plan, idinagdag ang aming mga automated na kaso dito, piliin ang build at release sa mga setting

Maginhawang BDD: SpecFlow+TFS

Maginhawang BDD: SpecFlow+TFS

5. Pagpapatakbo ng mga pagsusulit

Piliin ang kinakailangang pagsubok sa plano ng pagsubok at patakbuhin ito.

Maginhawang BDD: SpecFlow+TFS

Konklusyon

Ang mga bentahe ng config na ito:

  • maaaring buksan ng sinumang tester ang fetaure file sa web form na kontrol sa bersyon, i-edit ito at magkakabisa kaagad ang mga pagbabago pagkatapos ng build
  • maaari kang magpatakbo ng mga pagsubok nang paisa-isa sa anumang oras
  • transparent na modelo ng pagsubok - lagi naming alam kung ano ang ginagawa ng pagsubok na inilunsad namin.

Pinagmulan: www.habr.com

Magdagdag ng komento