2010-06-22 5 views
41

Raison pour laquelle je veux les exécuter individuellement, parce que je dois les avoir réglés individuellement dans mon dossier de Rake, parce que, mon Java Heap l'espace se remplit quand je les dirige tous ensembleRuby on Rails: Concombre: comment faire une seule fonction?

+0

Java Heap Espace? Comment Java se comporte-t-il si vous utilisez une pile Rake/Rails/Cucumber? –

+0

en cours d'exécution sur jruby, je devine – fakeleft

+0

pas directement. J'utilise des bibliothèques avec du concombre qui utilisent jruby. Je pense que CapyBara en est un. = \ – NullVoxPopuli

Répondre

40

Pour répondre à la question de Rake directement, vous pouvez utiliser:

rake FEATURE=features/adding_products.feature cucumber 

mais la page wiki Using Rake déconseille l'utilisation rake pour quoi que ce soit, mais sur un serveur CI, car il est plus lent à démarrer. Il suffit d'utiliser la ligne de commande de concombre à la place, à savoir:

cucumber features/adding_products.feature 

ou, si vous devez:

bundle exec cucumber features/adding_products.feature 
+4

pour la nouvelle version, vous pouvez le faire aussi - bundle exec fonctions concombre/add_products.feature –

0

Si vous utilisez cuke4duke vous pouvez exécutez ceci séparément de fourmi ou de maven. Le manual indique que vous pouvez utiliser les mêmes options que le concombre. Donc, je m'attendrais à ce que vous puissiez passer le nom de fichier de la fonctionnalité que vous voulez exécuter sur la ligne de commande.

0

Vous pouvez utiliser script/cucumber pour effectuer des fichiers individuels.

En admettant que vous dans le répertoire racine de votre projet et vous avez un dossier caractéristiques:

./script/cucumber features/adding_products.feature 

Edit: Après la relecture de votre question, vous cherchez à faire des caractéristiques individuelles, ou des scénarios?

+0

Pour moi, cela fonctionne 'cucumber -r fonctionnalités features/add_products.feature' – sivabudh

65

La manière correcte est de l'exécuter en utilisant l'exécutable cucumber si vous utilisez Rails 2, ou bundle exec cucumber si vous utilisez Rails 3 (et donc Bundler).

Pour exécuter une fonction spécifique:

[command] features/signing_in.feature 

Pour exécuter un scénario spécifique de cette fonction:

[command] features/signing_in.feature:6 

Le numéro de ligne peut être une ligne à l'intérieur cette fonctionnalité, mais est généralement la première ligne .

Si vous exécutez rake cucumber:ok et certains scénarios échouez, au bas de la sortie, vous verrez quelque chose comme ceci:

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

Vous pouvez cliquer trois fois sur cette ligne et le coller dans votre terminal pour exécuter juste que scénario.

+13

Pour exécuter un seul scénario, vous pouvez également taper cette : 'cucumber --name" Connexion par formulaire "' – Bastien

+0

Merci Ryan et Bastien. Cela devrait être la réponse acceptée. –

36

Le râteau n'a pas fonctionné pour moi. Juste remplacé le râteau avec exec bundle, et cela a fonctionné. ci-dessous est un échantillon.

ensemble fonctions concombre/utilisateurs/inscription.fonction --require propose

+0

A travaillé pour moi. Merci –

+1

A travaillé pour moi aussi. Si j'omets les fonctions --require, cucumber n'a pas réussi à identifier les définitions d'étape. –

+0

droite, avait le même problème. l'alternative est apparemment de coder en dur que '--require features' remplace cette ligne dans ** config/cucumber.yml **' std_opts = "--format # {ENV ['CUCUMBER_FORMAT'] || 'pretty'} - strict --tags ~ @ wip "' avec 'std_opts =" --format # {ENV ['CUCUMBER_FORMAT'] || 'joli'} --strict --tags ~ @ wip --require features/"' voir [cette question] (http: // stackoverflow.com/questions/6264030/rake-runs-all-my-cucumber-tests-fin-mais-concombre-doesnt-have-the-steps) –

15

Je ne suis pas tag feature de concombre sûr était disponible lorsque la question posée, mais je préfère mettre @active tag

@active 
    Feature .. 

ou

@active 
    Scenario .. 

et

cucumber --tags @active 
11

J'aime la commande courte $ cucumber -n.

Si:

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

Puis:

$ cucumber -n "Manage Contents" 
+0

Un seul qui a travaillé pour moi avec zeus - merci! – Houen

+0

Un bon ami, vous êtes le génie –

0

Les paramètres généralement requis lorsque vous avez plusieurs projets de concombre dans une entreprise à grande échelle sont 1) où exécuter les tests 2) environnement à courir contre 3) Quel navigateur 4) Quels tags

Voici un modèle qui est très flexible et peut être utilisé de plusieurs façons en fonction de vos besoins. Ce modèle peut être utilisé pour exécuter localement, contre une grille de sélénium, contre saucelabs et dans un environnement d'intégration continue

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

1

Pour exécuter un seul fichier caractéristique.

cucumber /project folder/features/featurefile.feature 

Pour exécuter scénario particulier:

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

où 10 est la ligne de scénario.

Si vous utilisez Bundler,

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