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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük