2010-06-22 12 views
41

Motivo per cui voglio eseguirli individualmente, è perché ho bisogno di averli individualmente impostati nel mio file Rake, perché, My Java Heap Space si riempie quando li eseguo tutti insiemeRuby on Rails: Cetriolo: come faccio a selezionare una singola funzione?

+0

Java Heap spazio? Come fa Java a capire se stai usando uno stack Rake/Rails/Cucumber? –

+0

in esecuzione su jruby, sto indovinando – fakeleft

+0

non direttamente. Sto usando alcune librerie insieme a cetriolo che usano jruby però. Penso che CapyBara sia uno. = \ – NullVoxPopuli

risposta

40

Per rispondere alla domanda Rake direttamente, è possibile utilizzare:

rake FEATURE=features/adding_products.feature cucumber 

ma la pagina wiki Using Rake consiglia di non utilizzare rastrello per qualsiasi cosa, ma sul server CI perché è più lento per iniziare. Basta usare la linea di comando cetriolo, invece, vale a dire:

cucumber features/adding_products.feature 

o, se è necessario:

bundle exec cucumber features/adding_products.feature 
+4

per la nuova versione, si può fare anche questo - bundle comprende cetriolo exec/adding_products.feature –

0

Se usi cuke4duke puoi eseguilo separatamente da una formica o da un esperto.

Il manual afferma che è possibile utilizzare le stesse opzioni di cetriolo. Quindi mi aspetto che tu possa passare il nome del file della funzione che vuoi eseguire sulla riga di comando.

0

È possibile utilizzare script/cucumber per eseguire singoli file.

Dando per scontato che sono nella directory principale del progetto e si dispone di una cartella caratteristiche:

./script/cucumber features/adding_products.feature 

Edit: dopo aver riletto la tua domanda, stai cercando di fare le caratteristiche individuali, o scenari?

+0

Per me, questo funziona 'cetriolo -r dispone di caratteristiche/adding_products.feature' – sivabudh

65

Il modo corretto è quello di eseguire utilizzando il file eseguibile cucumber se si sta utilizzando Rails 2, o bundle exec cucumber se stai usando Rails 3 (e quindi Bundler).

Per eseguire una funzione specifica:

[command] features/signing_in.feature 

Per eseguire uno scenario specifico da quella caratteristica:

[command] features/signing_in.feature:6 

Il numero di riga può essere qualsiasi traiettoria interna che la funzione, ma è di solito la prima linea .

Se si esegue rake cucumber:ok e alcuni scenari fallisci, in fondo l'uscita si vedrà qualcosa di simile:

cucumber features/sigining_in.feature:6 # Signing in via form 

È possibile tripla clic su questa riga e incollarlo nel vostro terminale per eseguire proprio questo scenario.

+13

Per eseguire un unico scenario, è anche possibile digitare questo : 'cetriolo --name "L'accesso con il modulo"' – Bastien

+0

Grazie Ryan e Bastien. Questa dovrebbe essere la risposta accettata. –

36

Il rake non ha funzionato per me. Ho appena sostituito il rake con bundle exec, e ha funzionato. di seguito è un esempio.

bundle exec cetriolo caratteristiche/utenti/registrazione.caratteristica --require dispone

+0

ha funzionato per me. Grazie –

+1

ha lavorato anche per me. Se ometto le caratteristiche del requisito, cetriolo non è riuscito a identificare le definizioni del passo. –

+0

a destra, ha avuto lo stesso problema. l'alternativa a quanto pare è quello di codificare che '--require features' replacig questa linea in ** config/cucumber.yml **' std_opts = "# {--format ENV [ 'CUCUMBER_FORMAT'] || 'abbastanza'} - strict --tags ~ @ wip "' con 'std_opts =" --format # {ENV ['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~ @ wip --require features/"' vedere [questa domanda] (http: // StackOverflow.it/questions/6264030/rake-runs-all-my-cetriolo-test-bene-ma-cetriolo-non-ha-passi) –

15

Non sono sicuro di cetriolo di tag feature era disponibile quando ha posto la domanda, ma io preferisco l'impostazione @active tag

@active 
    Feature .. 

o

@active 
    Scenario .. 

e

cucumber --tags @active 
11

mi piace il comando breve $ cucumber -n.

Se:

Feature: Manage Contents 
    In order to manage instances from custom content types 
    … 

Poi:

$ cucumber -n "Manage Contents" 
+0

Solo uno che ha funzionato per me con zeus - grazie! – Houen

+0

Buon amico, tu sei il genio –

0

I parametri generalmente richiesta quando si dispone di più progetti di cetriolo in una società di grandi dimensioni sono 1) dove eseguire i test 2) Quale ambiente per correre contro 3) Quale browser 4) Quali tag

Di seguito è riportato un modello che è molto flessibile e può essere utilizzato in più modi in base alle proprie esigenze. Questo modello può essere utilizzato per eseguire localmente, contro una griglia selenio, contro saucelabs e in un ambiente di integrazione continua

http://seleniumframework.wordpress.com/2014/05/18/pattern-for-running-multiple-cucumber-projects-on-ci-server/

1

Per eseguire un singolo file funzione.

cucumber /project folder/features/featurefile.feature 

Per eseguire scenario particolare:

cucumber /project folder/features/featurefile.feature:10 

dove 10 è la linea di scenario.

Se si utilizza bundler,

bundle exec cucumber /project folder/features/featurefile.feature

Problemi correlati