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
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:
- Proyekto na may mga pagsubok sa SpecFlow
- Azure DevOps Server (aka Team Foundation Server)
- 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.
2. Paglikha ng release para magpatakbo ng mga pagsubok
Paggawa ng release na may isang gawain - Visual Studio Test
Sa kasong ito, ang gawain ay naka-configure na magpatakbo ng mga pagsubok nang manu-mano mula sa plano ng pagsubok
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
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:
@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:
Resulta ng pag-synchronize
Ang mga hakbang sa script ng SpecFlow ay naka-synchronize at nakatakda ang Automation status
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
5. Pagpapatakbo ng mga pagsusulit
Piliin ang kinakailangang pagsubok sa plano ng pagsubok at patakbuhin ito.
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