Gurka (programvara)


StegdefinitionerRedigera

Steg i gurka ”s .feature -filer kan betraktas som en metodanrop. Före gurka kan utföra ett steg som man måste få veta via en stegdefinition hur detta steg ska utföras.

Definitioner skrivs i Ruby och sparas konventionellt under features/step_definitions/*_steps.rb. Definitioner börjar med samma nyckelord som deras anrop (inklusive Gherkins fullständiga språkstöd). Varje definition tar två argument

  • Antingen ett vanligt uttryck eller en sträng med $ variabler
  • Ett block som innehåller rubinkod att köra

Exempel med hjälp av reguljära uttryck

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

Exempel på strängar och $ variabler. Observera att strängen vid körning omvandlas till ett reguljärt uttryck, och varje $ -variabel konverteras för att matcha (.*).

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

HooksEdit

Hooks är Gurka sätt att tillåta att installation kan utföras innan test körs och nedrivning kan köras efteråt. De definieras som körbara Ruby-block , liknar JUnit-metoder markerade med @Before, @After -anteckningar. Konventionellt placeras de under support/ och tillämpas globalt. Tre grundläggande typer av krokar finns

  • Before – Körs före ett scenario
  • After – Körs efter en scenario
  • Around – Antar kontroll och kör runt ett scenario

Ytterligare krokar inkluderar

  • BeforeStep
  • AfterStep
  • AfterConfiguration – Körs efter gurkkonfiguration och skickas in konfigurationens inställning

Before, After, and Around krokar kan eventuellt ta en lista med taggar som filtrerar scenarier som de gäller för. En lista med taggar i samma sträng behandlas som OR, medan enskilda argument behandlas som AND; taggar kan valfritt negeras genom att föregås av ~.

Exempel på en taggad före krok

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

Krokar används ofta för att upprätthålla databasens tillstånd, vanligtvis genom att städa upp innan du kör ett scenario. Det är också möjligt att starta och rulla tillbaka en transaktion med Before och After krokar, och många gurktillägg ger en @txn tagg för ett sådant syfte.

Integrationer och implementeringarRedigera

Icke Ruby-implementeringar av Gurka finns för populära språk inklusive Java, JavaScript och Python. Stöd finns också för integrationstestramar. En komplett lista med implementeringar finns på Gurka. Gurka har integrerade testverktyg som fungerar bra med många konfigurationer för kontinuerlig integration. Det finns gurka-plugins för populära CI-verktyg som Jenkins och TeamCity och även för IDE som Eclipse och RubyMine.

Nedan följer ett exempel på en stegdefinition skriven för Java med Cucumber-JVM.

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

Formatter-plugins Redigera

Gurka använder Formatter Plugins för att ge utdata. Flera vanliga format tillhandahålls som standard, inklusive

  • JSON
  • HTML
  • JUnit

Tillgängliga format är inte standardiserade för olika gurkimplementeringar, så erbjudanden kan variera. Gurka stöder också rika utdataformat som bilder och videor.

Webbläsarautomatisering Redigera

Gurka tillhandahåller inte inbyggd webbläsarautomation. Det fungerar dock bra med befintliga program som Selenium och WATiR-WebDriver. Det stöder körning av tester med transaktioner genom att utnyttja andra program som ActiveRecord.

Gurka kommandorad Redigera

Gurka levereras med ett inbyggt kommandoradsgränssnitt som täcker en omfattande lista med instruktioner . Liksom de flesta kommandoradsverktyg ger gurka alternativet --help som ger en sammanfattning av argument som kommandot accepterar.

Gurka-kommandoraden kan användas för att snabbt köra definierade tester . Det stöder också att köra en delmängd av scenarier genom att filtrera taggar.

$ cucumber --tags @tag-name

Ovanstående kommando hjälper till att exekvera endast de scenarier som har angiven @tag-name. Argument kan tillhandahållas som en logisk OR eller AND -tagning. Bortsett från taggar kan scenarier filtreras på scenarinnamn.

$ cucumber --name logout

Kommandot ovan kör bara de scenarier som innehåller ordet ”logout”.

Det är också användbart att kunna veta vad som gick fel när ett test misslyckades. Gurka gör det enkelt att fånga buggar i koden med alternativet --backtrace.

Gurka kan också konfigureras för att ignorera vissa scenarier som inte har slutförts genom att markera dem med Work In Progress-taggen @wip. När gurka passerar argumentet --wip ignorerar gurka scenarier med @wip -taggen.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *