Comment puis-je marquer un scénario de concombre comme étant en attente afin qu'il ne soit pas compté comme passé ?
Scenario: Guest should not see edit link
# pending implementation
Ne devrais-je pas pouvoir le marquer comme étant en attente ?
Comment puis-je marquer un scénario de concombre comme étant en attente afin qu'il ne soit pas compté comme passé ?
Scenario: Guest should not see edit link
# pending implementation
Ne devrais-je pas pouvoir le marquer comme étant en attente ?
Le problème avec le tag @wip, j'ai trouvé, est qu'il ne rend pas votre suite de test jaune. Il ignore complètement les fonctionnalités wip, et vous avez tendance à oublier qu'elles existent. Mon équipe en a fait les frais lorsque des scénarios sont marqués @wip puis oubliés. J'aimerais qu'il y ait une meilleure solution. La meilleure que j'ai est d'ajouter cette étape personnalisée :
Given /^PENDING/ do
pending
end
Plutôt que de marquer une vraie fonctionnalité comme étant en attente, je peux la mettre dans la liste avec un message, comme ceci :
Given PENDING: we need client input
Ensuite, ça se présente comme ça :
(::) pending steps (::)
features/example.feature:15:in `Given PENDING: we need client input'
L'échec interrompt la chaîne de tests, mais il n'empêche pas Cucumber de s'inquiéter des étapes non définies qui suivent dans ce même scénario. De plus, idéalement, les fonctionnalités en échec et en attente vous indiqueraient le nom du scénario qui a échoué, mais ils ne le font pas.
Une autre possibilité est le tag @wip (work in progress). Les scénarios étiquetés @wip ne seront pas exécutés par défaut, mais seulement lorsque vous le demanderez explicitement.
@wip
Scenario: New product form should have some special field
Given I still work on this feature
De cette façon, vous pouvez exclure certains scénarios de la construction automatisée, afin qu'elle ne soit pas interrompue pendant que vous travaillez sur la fonctionnalité.
Ok, j'ai compris.
Les étapes Scénarios sont marquées comme étant en attente si elles ne sont pas trouvées dans un des fichiers d'étapes.
Scenario: New product form should have some special field
Given joe is logged in as an user
When on the new exercise page
Then the select field should have some special field
C'est même assez gentil pour éviter l'étape suivante.
When /^on the new exercise page$/ do
pending # express the regexp above with the code you wish you had
end
En plus de la réponse d'averell, vous pouvez exclure les balises de scénario lorsque vous exécutez cucumber.
Si @todo
et @wip
sont des balises que vous souhaitez utiliser pour les scénarios qui sont en cours de traitement ou simplement pour marquer les scénarios en attente, exécutez vos fonctions comme suit :
cucumber --tags ~@todo --tags ~@wip
Si vous utilisez Garde faire quelque chose comme ça :
guard 'cucumber', :notification => true, :all_on_start => true,
:cmd => "bundle exec cucumber",
:cli => "--tags ~@todo --tags ~@wip" do
watch(%r{^features/.+\.feature$})
watch(%r{^features/support/.+$}) { 'features' }
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
Dir[File.join("**/#{m[1]}.feature")][0] || 'features'
end
end
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.