Uborka (szoftver)
LépésdefiníciókSzerkesztés
A Gherkin “s .feature
fájlok lépései metódushívásnak tekinthetők. végrehajthat egy lépést, a lépésdefiníción keresztül meg kell mondani, hogyan kell végrehajtani ezt a lépést.
A definíciókat Ruby-ban írják, és általában a features/step_definitions/*_steps.rb
alatt iktatják be. A definíciók ugyanazokkal a kulcsszavakkal kezdődnek, mint a meghívásuk (beleértve Gherkin teljes nyelvi támogatását). Mindegyik definícióhoz két argumentum szükséges.
- Vagy reguláris kifejezés, vagy karakterlánc $ változókkal
- Ruby kódot tartalmazó blokk végrehajtására
Példa reguláris kifejezések használatával
Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend
Példa karakterláncok és $ változók használatára. Vegye figyelembe, hogy futás közben a karakterlánc átalakul reguláris kifejezéssé, és bármely $ változó átalakul (.*)
egyezésre.
Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend
HooksEdit
A horgok az uborka módja annak, hogy lehetővé tegyék a beállítás elvégzését a tesztek futtatása előtt és a lebontást később. Ezeket futtatható Ruby-blokkokként definiálják. , hasonlóan a @Before, @After
kommentárokkal megjelölt JUnit-módszerekhez. Hagyományosan a support/
alá helyezik őket, és globálisan alkalmazzák őket. Három alapvető típusú horog létezik
-
Before
– Forgatókönyv előtt fut -
After
– A szcenárió -
Around
– Felveszi az irányítást és körbefut egy szcenárió
További horgok:
-
BeforeStep
-
AfterStep
-
AfterConfiguration
– Az uborka konfigurálása után fut, és átadják az in a konfiguráció állása
Before, After, and Around
horgok opcionálisan felveszik a címkeszűrési forgatókönyvek listáját, amelyekre vonatkoznak. Az ugyanabban a karaktersorozatban található címkék listája OR
, míg az egyes argumentumok AND
; A címkék opcionálisan tagadhatók úgy, hogy megelőzik a következőt: ~
.
Példa egy kampó előtt címkézett
Before("@ATM") do |scenario| # Ruby codeend
A kampókat gyakran használják az adatbázis állapotának fenntartására, általában a forgatókönyv futtatása előtti megtisztítással. Lehetőség van egy tranzakció elindítására és visszagörgetésére a Before
és a After
kampók használatával is, és sok uborka-bővítmény @txn
címke ilyen célra.
Integrációk és implementációkEdit
A Cucumber nem Ruby implementációi léteznek olyan népszerű nyelveknél, mint a Java, a JavaScript és a Python. Az integrációs tesztelési keretrendszerek támogatása is létezik. A megvalósítások teljes listája megtalálható az Uborka oldalon. A Cucumber integrált tesztelő eszközökkel rendelkezik, amelyek sok folyamatos integrációs konfigurációval jól működnek. Vannak uborka bővítmények olyan népszerű CI eszközökhöz, mint a Jenkins és a TeamCity, valamint olyan IDE-khez, mint az Eclipse és a RubyMine.
Az alábbiakban bemutatunk egy példát a Java-ra írt lépésmeghatározásra a Cucumber-JVM használatával.
@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}
Formázó beépülő modulokEdit
Az uborka Formázó beépülő modulokat használ a kimenet biztosításához. Alapértelmezés szerint több általános formátumot biztosítanak, például
- JSON
- HTML
- JUnit
A rendelkezésre álló formátumok nincs szabványosítva a különböző uborka megvalósításokban, ezért a kínálat eltérhet. Az uborka olyan gazdag kimeneti formátumokat is támogat, mint a képek és videók.
A böngésző automatizálásaEdit
Az uborka nem nyújt beépített böngésző-automatizálást. Ez azonban jól működik olyan meglévő programokkal, mint a Selenium és a WATiR-WebDriver. Támogatja a tranzakciókkal kapcsolatos tesztek futtatását más programok, például az ActiveRecord kihasználásával.
Uborka parancssori szerkesztés
Az uborka beépített parancssori felülettel rendelkezik, amely átfogó utasításlistát tartalmaz. . A legtöbb parancssori eszközhöz hasonlóan az uborka is megadja az --help
opciót, amely összefoglalja az argumentumokat, amelyeket a parancs elfogad.
Az uborka parancssor használható definiált tesztek gyors futtatására. . Támogatja a forgatókönyvek egy részének futtatását is a címkék szűrésével.
$ cucumber --tags @tag-name
A fenti parancs csak azoknak a forgatókönyveknek a végrehajtásában segít, amelyek rendelkeznek a megadott @tag-name
. Az érvek logikai OR
vagy AND
címkeként adhatók meg. A címkéken kívül a forgatókönyvek szűrhetők a forgatókönyvek nevére.
$ cucumber --name logout
A fenti parancs csak azokat a forgatókönyveket futtatja, amelyek tartalmazzák a szót “kijelentkezés”.
Az is hasznos, ha megtudhatjuk, mi hibázott, ha egy teszt nem sikerült. Az uborka megkönnyíti a kód hibáinak elkapását a --backtrace
opcióval.
Az uborka úgy is konfigurálható, hogy figyelmen kívül hagyjon bizonyos, még be nem fejezett forgatókönyveket, ha azokat a Folyamatban lévő munka @wip
címkével jelöli. Amikor az uborka átadja az --wip
argumentumot, az uborka figyelmen kívül hagyja a @wip
címkével ellátott forgatókönyveket.