Kurkku (ohjelmisto)
VaihemäärityksetMuokkaa
Gherkin ”s .feature
-tiedostojen vaiheita voidaan pitää menetelmän kutsuna. Ennen kurkkua voi suorittaa vaiheen, on kerrottava askelmäärittelyn avulla, kuinka vaihe suoritetaan.
Määritelmät kirjoitetaan Ruby-muodossa ja tavallisesti arkistoidaan kohtaan features/step_definitions/*_steps.rb
. Määritelmät alkavat samoilla avainsanoilla kuin niiden kutsuminen (mukaan lukien Gherkinin täydellinen kielituki). Jokaisessa määritelmässä on kaksi argumenttia
- Joko säännöllinen lauseke tai merkkijono, jossa on $ muuttujia
- Lohko, joka sisältää ruby-koodin suoritettavaksi
Esimerkki säännöllisten lausekkeiden käyttö
Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend
Esimerkki merkkijonojen ja $ -muuttujien käytöstä. Huomaa, että ajon aikana merkkijono muunnetaan säännölliseksi lausekkeeksi ja mikä tahansa muuttuja $ muutetaan vastaavaksi (.*)
.
Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend
HooksEdit
Koukut ovat kurkun tapa sallia määritys ennen testien suorittamista ja repiminen jälkikäteen. Ne määritellään suoritettaviksi Ruby-lohkoiksi , samanlainen kuin JUnit-menetelmissä, jotka on merkitty @Before, @After
-merkinnöillä. Tavallisesti ne sijoitetaan support/
-kohtaan ja niitä käytetään maailmanlaajuisesti. Kolme perustyyppistä koukkua on olemassa
-
Before
– Suoritetaan ennen skenaariota -
After
– Suoritetaan skenaario -
Around
– Ottaa hallinnan ja kulkee skenaarion ympäri
Muita koukkuja ovat
-
BeforeStep
-
AfterStep
-
AfterConfiguration
– Suorittaa kurkkuasetusten jälkeen ja läpäisee sisään asennon asenne
Before, After, and Around
koukut ottavat vaihtoehtoisesti luettelon tunnisteiden suodatustilanteista, joihin ne soveltuvat. Samassa merkkijonossa olevien tunnisteiden luetteloa käsitellään nimellä OR
, kun taas yksittäisiä argumentteja käsitellään nimellä AND
; tunnisteet voidaan valinnaisesti kumota edeltämällä ~
.
Esimerkki tagista ennen koukkua
Before("@ATM") do |scenario| # Ruby codeend
Koukkuja käytetään usein tietokannan tilan ylläpitämiseen, yleensä puhdistamalla ennen skenaarion suorittamista. Tapahtuma voidaan myös aloittaa ja palauttaa käyttämällä Before
– ja After
-koukkuja, ja monissa Kurkku-laajennuksissa on @txn
-tunniste tällaista tarkoitusta varten.
Integraatiot ja toteutuksetEdit
Cucumberin ei-ruby-toteutustavat ovat olemassa suosituille kielille, kuten Java, JavaScript ja Python. Tuki on olemassa myös integrointitestauskehyksille. Täydellinen luettelo toteutuksista löytyy Kurkusta. Cucumberilla on integroidut testaustyökalut, jotka toimivat hyvin monien jatkuvan integroinnin kokoonpanojen kanssa. On olemassa kurkkulaajennuksia suosituille CI-työkaluille, kuten Jenkins ja TeamCity, sekä IDE: lle, kuten Eclipse ja RubyMine.
Alla on esimerkki askelmäärittelystä, joka on kirjoitettu Java: lle Cucumber-JVM: n avulla.
@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}
Formatter pluginsEdit
Kurkku käyttää muotoilulaajennuksia laajennusten tuottamiseen. Oletuksena on useita yleisiä muotoja, mukaan lukien
- JSON
- HTML
- JUnit
Käytettävissä olevat muodot ovat ei standardoitu eri kurkkutoteutuksissa, joten tarjonta voi vaihdella. Kurkku tukee myös rikkaita ulostulomuotoja, kuten kuvia ja videoita.
Selaimen automaatioEdit
Kurkku ei tarjoa sisäänrakennettua selainautomaatiota. Se toimii kuitenkin hyvin olemassa olevien ohjelmien, kuten Selenium ja WATiR-WebDriver, kanssa. Se tukee testien suorittamista tapahtumilla hyödyntämällä muita ohjelmia, kuten ActiveRecord.
Cucumber-komentorivin muokkaus
Cucumberissa on sisäänrakennettu komentoriviliitäntä, joka kattaa kattavan luettelon ohjeista . Kuten useimmat komentorivityökalut, kurkku tarjoaa --help
-vaihtoehdon, joka tarjoaa yhteenvedon komennon hyväksymistä argumenteista.
Kurkun komentorivillä voidaan suorittaa määritetyt testit nopeasti . Se tukee myös osajoukkojen suorittamista suodattamalla tageja.
$ cucumber --tags @tag-name
Yllä oleva komento auttaa suorittamaan vain ne skenaariot, joilla on määritetty @tag-name
. Argumentit voidaan antaa tagien loogisena OR
– tai AND
-operaationa. Tunnisteiden lisäksi skenaarioita voidaan suodattaa skenaarioiden nimiin.
$ cucumber --name logout
Yllä oleva komento suorittaa vain ne skenaariot, jotka sisältävät sanan ”uloskirjautuminen”.
On myös hyödyllistä tietää, mikä meni pieleen, kun testi epäonnistui. Kurkku helpottaa koodivirheiden löytämistä --backtrace
-vaihtoehdolla.
Kurkku voidaan myös määrittää jättämään huomiotta tietyt keskeneräiset skenaariot merkitsemällä ne käynnissä olevan työn tunnisteella @wip
. Kun Kurkku on läpäissyt --wip
-argumentin, Kurkku jättää huomiotta @wip
-tunnisteen sisältävät skenaariot.