Question

I have some SpecFlow features (using the Gherkin syntax) and I would like to temporarily disable the feature to prevent its tests from running?

Is there an attribute I can mark the feature with to do this? I'm guessing that something that works with Cucumber might also work with SpecFlow.

Was it helpful?

Solution

You can mark the feature with the tag @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'

OTHER TIPS

In the recent version of Specflow, you now also have to provide a reason with the tag, like so:

@ignore("reason for ignoring")

EDIT: For some reason it break with spaces but this works:

@ignore("reason")

As jbandi suggests you can use the @ignore tag.

Tag can be applied to:

  • a single Scenario
  • a full Feature

Given NUnit as the test provider, the result in generated code is the insertion of the

[NUnit.Framework.IgnoreAttribute()]

to the method or the class.

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     |

consider the above as feature file "CheckSample.feature"

And below is your step file, it is just partial file:

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();
}

Now below will be runner file:

@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 to note here, the "@ignored" text in feature file is mentioned in CucumberOptions (tags) with in "junittestone" class file. Also, make sure you have all relevant jar files for both cucumber, gherkin, Junit and other jars available in your project and you have imported them in your step definitions (class).

Because of "ignored", the scenario will be skipped while executing tests.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top