Okurka (software)

Definice krokuUpravit

Kroky v Gherkinových .feature lze považovat za vyvolání metody. Před okurkou může provést krok, musí být prostřednictvím definice kroku řečeno, jak by měl být tento krok proveden.

Definice jsou psány v Ruby a běžně ukládány pod features/step_definitions/*_steps.rb. Definice začínají stejnými klíčovými slovy jako jejich vyvolání (včetně úplné jazykové podpory Gherkin). Každá definice má dva argumenty

  • Buď regulární výraz nebo řetězec s proměnnými $
  • Blok obsahující rubínový kód k provedení

Příklad použití regulárních výrazů

Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend

Příklad použití řetězců a $ proměnných. Upozorňujeme, že za běhu je řetězec převeden na regulární výraz a libovolná proměnná $ je převedena tak, aby odpovídala (.*).

Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend

HooksEdit

Háčky jsou způsob okurky, který umožňuje provést nastavení před spuštěním testů a následným spuštěním teardown. Jsou definovány jako spustitelné rubínové bloky , podobné metodám JUnit označeným @Before, @After anotacemi. Obvykle jsou umístěny pod support/ a používají se globálně. Existují tři základní typy háčků

  • Before – Spustí se před scénářem
  • After – Spustí se po scénář
  • Around – Převezme kontrolu a pobíhá kolem scénáře

Mezi další háčky patří

  • BeforeStep
  • AfterStep
  • AfterConfiguration – Spustí se po konfiguraci okurky a předá se dovnitř stav konfigurace

Before, After, and Around háčky volitelně vezmou seznam scénářů filtrování značek, na které se vztahují. Seznam značek ve stejném řetězci je považován za OR, zatímco jednotlivé argumenty jsou považovány za AND; značky lze volitelně negovat tak, že před nimi bude ~.

Příklad označeného tagu před háčkem

Before("@ATM") do |scenario| # Ruby codeend

Háčky se často používají k udržování stavu databáze, obvykle vyčištěním před spuštěním scénáře. Je také možné zahájit a vrátit transakci pomocí háčků Before a After a mnoho rozšíření Okurka poskytuje @txn značka pro tento účel.

Integrace a implementaceEdit

Non Ruby implementace Cucumber existují pro populární jazyky včetně Java, JavaScript a Python. Existuje také podpora pro integrační testovací rámce. Kompletní seznam implementací najdete na Cucumber. Cucumber má integrované testovací nástroje, které fungují dobře s mnoha konfiguracemi kontinuální integrace. Existují pluginy okurek pro oblíbené nástroje CI, jako jsou Jenkins a TeamCity, a také pro IDE, jako je Eclipse a RubyMine.

Níže je uveden příklad definice kroku napsané pro Javu s Cucumber-JVM. >

@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}

Doplňky formátovacího moduluEdit

Okurka používá k zajištění výstupu doplňky formátovacího modulu. Ve výchozím nastavení je k dispozici několik běžných formátů, včetně

  • JSON
  • HTML
  • JUnit

Dostupné formáty jsou není standardizováno napříč různými implementacemi okurky, takže nabídky se mohou lišit. Okurka také podporuje bohaté výstupní formáty, jako jsou obrázky a videa.

Automatizace prohlížeče Upravit

Okurka neposkytuje integrovanou automatizaci prohlížeče. Funguje však dobře se stávajícími programy, jako je Selenium a WATiR-WebDriver. Podporuje spouštění testů s transakcemi pomocí dalších programů, jako je ActiveRecord.

Příkazový řádek CucumberEdit

Cucumber je dodáván s vestavěným rozhraním příkazového řádku, které zahrnuje komplexní seznam pokynů . Jako většina nástrojů příkazového řádku poskytuje okurka možnost --help, která poskytuje souhrn argumentů, které příkaz přijímá.

K rychlému spuštění definovaných testů lze použít příkazový řádek okurky . Podporuje také spuštění podmnožiny scénářů filtrováním značek.

$ cucumber --tags @tag-name

Výše uvedený příkaz pomáhá při provádění pouze těch scénářů, které mají uvedeno @tag-name. Argumenty lze poskytnout jako logickou OR nebo AND operaci značek. Kromě značek lze scénáře filtrovat podle názvů scénářů.

$ cucumber --name logout

Výše uvedený příkaz spustí pouze ty scénáře, které obsahují slovo „odhlášení“.

Je také užitečné vědět, co se pokazilo, když test selhal. Okurka usnadňuje chytání chyb v kódu pomocí možnosti --backtrace.

Okurku lze také nakonfigurovat tak, aby ignorovala určité scénáře, které nebyly dokončeny, a to tak, že je označíte značkou Work In Progress @wip. Když je okurce předán argument --wip, okurka ignoruje scénáře se značkou @wip.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *