Comment désactiver une fonctionnalité dans specflow (Gherkin) sans la supprimer?
J'ai quelques fonctionnalités SpecFlow (en utilisant la syntaxe Gherkin) et je voudrais désactiver temporairement la fonctionnalité pour empêcher ses tests de s'exécuter?
Y a-t-il un attribut avec lequel je peux marquer la fonctionnalité pour le faire? Je suppose que quelque chose qui fonctionne avec le concombre pourrait également fonctionner avec SpecFlow.
4 réponses
Vous pouvez marquer la fonctionnalité avec la balise @ ignore:
@ignore @web
Scenario: Title should be matched
When I perform a simple search on 'Domain'
Then the book list should exactly contain book 'Domain Driven Design'
Dans la version récente de Specflow, vous aurez à fournir une raison avec la balise:
@ignore("reason for ignoring")
EDIT: pour une raison quelconque, il rompt avec les espaces mais cela fonctionne:
@ignore("reason")
Comme le suggère jbandi, vous pouvez utiliser la balise @ ignore.
La balisePeut être appliquée à:
- un seul Scénario
- Une fonctionnalité complète
Étant donné NUnit comme fournisseur de test, le résultat dans le code généré est l'insertion du
[NUnit.Framework.IgnoreAttribute ()]
À la méthode ou À la classe.
Feature: CheckSample
@ignored
Scenario Outline: check ABC #checkout.feature:2
Given I open the applciation
When I enter username as "<username>"
And I enter password as "<password>"
Then I enter title as "<title>"
Examples:
| username | password |
| dude | daad |
Considérez ce qui précède comme un fichier de fonctionnalités " CheckSample.fonction "
Et ci-dessous est votre fichier step, c'est juste un fichier partiel:
public class Sampletest {
@Given("^I open the applciation$")
public void i_open_the_applciation() throws Throwable {
// Write code here that turns the phrase above into concrete actions
//throw new PendingException();
}
Maintenant ci-dessous sera le fichier runner:
@RunWith(Cucumber.class)
@CucumberOptions(
plugin = {"pretty", "html:target/reports",
"json:target/reports/cucumber-report.json"},
monochrome = true,
tags = {"~@ignored"}
)
public class junittestOne {
public static void main(String[] args) {
JUnitCore junit = new JUnitCore();
Result result = junit.run(junittestOne.class);
}
}
Important de noter ici, le texte "@ ignoré "dans le fichier de fonctionnalité est mentionné dans CucumberOptions (tags) avec dans le fichier de classe" junittestone". Aussi, assurez-vous d'avoir tous les fichiers jar pour les deux concombre, cornichon, Junit et autres pots disponible dans votre projet et que vous avez importées dans votre définitions d'étape (classe).
En raison de "ignoré", le scénario sera ignoré lors de l'exécution des tests.