Cucumber (software) (Italiano)


Definizioni dei passaggiModifica

I passaggi nei file Gherkin “s .feature possono essere considerati invocazioni di metodi. Prima di Cucumber può eseguire un passaggio deve essere detto, tramite una definizione di passaggio, come deve essere eseguito tale passaggio.

Le definizioni sono scritte in Ruby e convenzionalmente archiviate sotto features/step_definitions/*_steps.rb. Le definizioni iniziano con le stesse parole chiave della loro invocazione (incluso il supporto completo della lingua di Gherkin). Ogni definizione accetta due argomenti

  • Unespressione regolare o una stringa con $ variabili
  • Un blocco contenente codice ruby da eseguire

Esempio utilizzo di espressioni regolari

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

Esempio di utilizzo di stringhe e $ variabili. Tieni presente che in fase di esecuzione la stringa viene convertita in unespressione regolare e qualsiasi variabile $ viene convertita in (.*).

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

HooksEdit

Gli hook sono il modo in cui Cucumber consente di eseguire la configurazione prima che i test vengano eseguiti e lo smontaggio in seguito. Sono definiti come blocchi Ruby eseguibili , simili ai metodi JUnit contrassegnati con annotazioni @Before, @After. Convenzionalmente sono posizionati sotto support/ e vengono applicati globalmente. Esistono tre tipi fondamentali di hook

  • Before – Viene eseguito prima di uno scenario
  • After – Viene eseguito dopo uno scenario
  • Around – Assume il controllo e corre intorno a uno scenario

Gli hook aggiuntivi includono

  • BeforeStep
  • AfterStep
  • AfterConfiguration – Viene eseguito dopo la configurazione Cucumber e viene passato un file in posizione della configurazione

Before, After, and Around opzionalmente gli hook accettano un elenco di scenari di filtraggio dei tag a cui si applicano. Un elenco di tag nella stessa stringa viene trattato come OR, mentre i singoli argomenti vengono trattati come AND; i tag possono essere facoltativamente negati facendoli precedere da ~.

Esempio di un hook taggato prima

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

Gli hook sono spesso usati per mantenere lo stato del database, tipicamente pulendo prima di eseguire uno scenario. È anche possibile avviare e ripristinare una transazione utilizzando Before e After hook e molte estensioni Cucumber forniscono un @txn per tale scopo.

Integrazioni e implementazioniModifica

Esistono implementazioni non Ruby di Cucumber per linguaggi popolari inclusi Java, JavaScript e Python. Esiste anche il supporto per framework di test di integrazione. Un elenco completo delle implementazioni può essere trovato su Cucumber. Cucumber ha strumenti di test integrati che funzionano bene con molte configurazioni di integrazione continua. Esistono plug-in di cetriolo per strumenti CI popolari come Jenkins e TeamCity e anche per IDE come Eclipse e RubyMine.

Di seguito è riportato un esempio di una definizione di passaggio scritta per Java con Cucumber-JVM.

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

Formatter pluginsEdit

Cucumber utilizza i plugin del formatter per fornire loutput. Per impostazione predefinita vengono forniti diversi formati comuni, tra cui

  • JSON
  • HTML
  • JUnit

I formati disponibili sono non standardizzato per diverse implementazioni di Cucumber, quindi le offerte potrebbero differire. Cucumber supporta anche formati di output avanzati come immagini e video.

Automazione del browserModifica

Cucumber non fornisce automazione del browser integrata. Tuttavia, funziona bene con i programmi esistenti come Selenium e WATiR-WebDriver. Supporta lesecuzione di test con transazioni sfruttando altri programmi come ActiveRecord.

Cucumber command-lineEdit

Cucumber viene fornito con uninterfaccia a riga di comando incorporata che copre un elenco completo di istruzioni . Come la maggior parte degli strumenti da riga di comando, cucumber fornisce lopzione --help che fornisce un riepilogo degli argomenti accettati dal comando.

La riga di comando di Cucumber può essere utilizzata per eseguire rapidamente test definiti . Supporta anche lesecuzione di un sottoinsieme di scenari filtrando i tag.

$ cucumber --tags @tag-name

Il comando precedente aiuta a eseguire solo quegli scenari che hanno il specificato @tag-name. Gli argomenti possono essere forniti come unoperazione OR o AND dei tag. Oltre ai tag, gli scenari possono essere filtrati sui nomi degli scenari.

$ cucumber --name logout

Il comando precedente eseguirà solo quegli scenari che contengono la parola “logout”.

È anche utile essere in grado di sapere cosa è andato storto quando un test fallisce. Cucumber semplifica lindividuazione dei bug nel codice con lopzione --backtrace.

Cucumber può anche essere configurato per ignorare determinati scenari che non sono stati completati contrassegnandoli con il tag Work In Progress @wip. Quando a Cucumber viene passato largomento --wip, Cucumber ignora gli scenari con il tag @wip.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *