Castravete (software)


Definiții de pasEdit

Pași în fișierele Gherkin „s .feature pot fi considerate o invocare de metodă. Înainte de Castravete poate executa un pas, trebuie să i se spună, printr-o definiție a pasului, cum trebuie efectuat acel pas.

Definițiile sunt scrise în Ruby și sunt înregistrate în mod convențional sub features/step_definitions/*_steps.rb. Definițiile încep cu aceleași cuvinte cheie ca invocarea lor (inclusiv suportul lingvistic complet al lui Gherkin). Fiecare definiție ia două argumente

  • Fie o expresie obișnuită, fie un șir cu variabile $
  • Un bloc care conține cod rubin de executat

Exemplu folosind expresii regulate

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

Exemplu folosind șiruri și variabile $. Rețineți că în timpul rulării șirul este convertit într-o expresie regulată și orice variabilă $ este convertită pentru a se potrivi cu (.*).

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

HooksEdit

Cârligele sunt modalitatea de castraveți de a permite efectuarea configurării înainte ca testele să fie executate și detalierea să fie executată ulterior. Sunt definite ca blocuri Ruby executabile , similar cu metodele JUnit marcate cu adnotări @Before, @After. În mod convențional, acestea sunt plasate sub support/ și sunt aplicate la nivel global. Există trei tipuri de bază de cârlige

  • Before – Se execută înainte de un scenariu
  • After – Se execută după o scenariu
  • Around – Presupune controlul și rulează în jurul unui scenariu

Cârligele suplimentare includ

  • BeforeStep
  • AfterStep
  • AfterConfiguration – Se execută după configurarea Cucumber și i se transmite un in poziția configurației

Before, After, and Around cârligele iau opțional o listă de scenarii de filtrare a etichetelor la care se aplică. O listă de etichete din același șir este tratată ca OR, în timp ce argumentele individuale sunt tratate ca AND; etichetele pot fi opțional negate fiind precedate de ~.

Exemplu de etichetare înainte de hook

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

Cârligele sunt adesea utilizate pentru a menține starea bazei de date, de obicei prin curățarea înainte de a rula un scenariu. De asemenea, este posibil să porniți și să derulați o tranzacție folosind Before și After cârlige, iar multe extensii de Castravete oferă un @txn etichetă pentru un astfel de scop.

Integrări și implementăriEdit

Există implementări non Ruby de Castravete pentru limbaje populare, inclusiv Java, JavaScript și Python. De asemenea, există suport pentru cadrele de testare a integrării. O listă completă de implementări poate fi găsită pe Castravete. Castravetele are instrumente de testare integrate care funcționează bine cu multe configurații de integrare continuă. Există pluginuri pentru castraveți pentru instrumentele CI populare, cum ar fi Jenkins și TeamCity, precum și pentru IDE-uri precum Eclipse și RubyMine.

Mai jos este un exemplu de definiție a pasului scris pentru Java cu Cucumber-JVM.

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

Formatter pluginsEdit

Castravete folosește Formatter Plugins pentru a furniza ieșire. Mai multe formate comune sunt furnizate în mod implicit, inclusiv

  • JSON
  • HTML
  • JUnit

Formatele disponibile sunt nu este standardizat în diferite implementări de Castravete, astfel încât ofertele pot diferi. Castravetele acceptă, de asemenea, formate de ieșire bogate, cum ar fi imagini și videoclipuri.

Browser automationEdit

Castravete nu oferă automatizare încorporată în browser. Cu toate acestea, funcționează bine cu programe existente, cum ar fi Selenium și WATiR-WebDriver. Acceptă efectuarea de teste cu tranzacții prin utilizarea altor programe, cum ar fi ActiveRecord.

Ediția de comandă a castraveților

Castravetele vine cu o interfață încorporată în linia de comandă care acoperă o listă cuprinzătoare de instrucțiuni . La fel ca majoritatea instrumentelor din linia de comandă, castravetele oferă opțiunea --help care oferă un rezumat al argumentelor acceptate de comandă.

Linia de comandă Castravete poate fi utilizată pentru a rula rapid testele definite . De asemenea, acceptă rularea unui subset de scenarii prin filtrarea etichetelor.

$ cucumber --tags @tag-name

Comanda de mai sus ajută la executarea numai a acelor scenarii care au specificat @tag-name. Argumentele pot fi furnizate ca o operație logică OR sau AND a etichetelor. În afară de etichete, scenariile pot fi filtrate pe numele scenariilor.

$ cucumber --name logout

Comanda de mai sus va rula doar acele scenarii care conțin cuvântul „deconectare”.

De asemenea, este util să puteți ști ce a mers prost când un test eșuează. Castravetele facilitează captarea erorilor în cod cu opțiunea --backtrace.

Castravetele pot fi, de asemenea, configurate pentru a ignora anumite scenarii care nu au fost finalizate, marcându-le cu eticheta Work In Progress @wip. Când Castravetele este trecut argumentul --wip, Castravetele ignoră scenariile cu eticheta @wip.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *