Agurk (programvare)


Trinndefinisjoner Rediger

Trinn i agurk «s .feature filer kan betraktes som en metodeinnkallelse. Før agurk kan utføre et trinn det må fortelles, via en trinndefinisjon, hvordan det trinnet skal utføres.

Definisjoner er skrevet i Ruby og konvensjonelt arkivert under features/step_definitions/*_steps.rb. Definisjoner starter med de samme nøkkelordene som påkallingen (inkludert Gherkins full språkstøtte). Hver definisjon tar to argumenter

  • Enten et vanlig uttrykk eller en streng med $ -variabler
  • En blokk som inneholder rubinkode å utføre

Eksempel ved å bruke vanlige uttrykk

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

Eksempel på strenger og $ -variabler. Merk at strengen konverteres til et vanlig uttrykk ved kjøretid, og enhver $ -variabel konverteres til å matche (.*).

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

HooksEdit

Hooks er agurkens måte å tillate at oppsett kan utføres før tester kjøres og nedrivning kjøres etterpå. De defineres som kjørbare Ruby-blokker , lik JUnit-metoder merket med @Before, @After -notater. Vanligvis plasseres de under support/, og brukes globalt. Tre grunnleggende typer kroker eksisterer

  • Before – Kjører før et scenario
  • After – Kjører etter en scenario
  • Around – Forutsetter kontroll og løper rundt et scenario

Ekstra kroker inkluderer

  • BeforeStep
  • AfterStep
  • AfterConfiguration – Kjører etter agurkekonfigurasjon og sendes inn stilling av konfigurasjonen

Before, After, and Around kroker kan eventuelt ta en liste over koder som filtrerer scenarier som de gjelder for. En liste over koder i samme streng behandles som OR, mens individuelle argumenter behandles som AND; koder kan valgfritt negeres ved å gå foran ~.

Eksempel på en merket før kroken

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

Kroker brukes ofte til å opprettholde databasetilstanden, vanligvis ved å rydde opp før du kjører et scenario. Det er også mulig å starte og rulle tilbake en transaksjon ved hjelp av Before og After kroker, og mange agurkutvidelser gir en @txn -kode for et slikt formål.

Integrasjoner og implementeringerRediger

Non Ruby-implementeringer av Agurk eksisterer for populære språk, inkludert Java, JavaScript og Python. Det finnes også støtte for integrasjonstestingsrammer. En komplett liste over implementeringer finner du på Agurk. Agurk har integrerte testverktøy som fungerer bra med mange kontinuerlige integrasjonskonfigurasjoner. Det er agurkplugins for populære CI-verktøy som Jenkins og TeamCity, og også for IDEer som Eclipse og RubyMine.

Nedenfor er et eksempel på en trinndefinisjon skrevet for Java med Cucumber-JVM.

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

Formatter pluginsEdit

Agurk bruker Formatter Plugins for å gi utdata. Flere vanlige formater er gitt som standard, inkludert

  • JSON
  • HTML
  • JUnit

Tilgjengelige formater er ikke standardisert på tvers av forskjellige agurkimplementeringer, så tilbud kan variere. Agurk støtter også rike utdataformater som bilder og videoer.

Nettleserautomatisering Rediger

Agurk gir ikke innebygd nettleserautomatisering. Imidlertid fungerer det bra med eksisterende programmer som Selenium og WATiR-WebDriver. Den støtter kjøring av tester med transaksjoner ved å utnytte andre programmer som ActiveRecord.

Agurk kommandolinjeEdit

Agurk leveres med et innebygd kommandolinjegrensesnitt som dekker en omfattende liste over instruksjoner . Som de fleste kommandolinjeverktøy gir agurk --help alternativet som gir et sammendrag av argumenter kommandoen godtar.

Agurk kommandolinje kan brukes til å kjøre definerte tester raskt . Den støtter også å kjøre et delsett av scenarier ved å filtrere koder.

$ cucumber --tags @tag-name

Kommandoen ovenfor hjelper til å utføre bare de scenariene som har spesifisert @tag-name. Argumenter kan leveres som en logisk OR eller AND -drift av koder. Bortsett fra koder, kan scenarier filtreres på scenenavn.

$ cucumber --name logout

Kommandoen ovenfor kjører bare de scenariene som inneholder ordet «logout».

Det er også nyttig å kunne vite hva som gikk galt når en test mislyktes. Agurk gjør det enkelt å fange bugs i koden med alternativet --backtrace.

Agurk kan også konfigureres til å ignorere visse scenarier som ikke er fullført ved å merke dem med Work In Progress-koden @wip. Når agurk overføres til argumentet --wip, ignorerer agurk scenarier med @wip -taggen.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *