I am running a maven project in Eclipse for my Cucumber tests. My test runner class looks like this:
@RunWith(Cucumber.class)
@CucumberOptions(
tags = { "@Now" },
// tags = { "@Ready" },
// tags = { "@Draft" },
features = { "src/test/java/com/myCompany/FaultReporting/Features" },
glue = { "com.myCompany.myApp.StepDefinitions" }
)
public class RunnerTest {
}
Instead of having to hard code the tags into the test runner, I am keen to pass them in using the .command file. (i.e. using System.getProperty("cucumber.tag")
However, I get an error when I add the line of code to the above test runner:
@RunWith(Cucumber.class)
@CucumberOptions(
tags = { System.getProperty("cucumber.tag") }
// tags = { "@Now" },
// tags = { "@Ready" },
// tags = { "@Draft" },
features = { "src/test/java/com/myCompany/FaultReporting/Features" },
glue = { "com.myCompany.myApp.StepDefinitions" }
)
public class RunnerTest {
}
The error I get is: "The value for annotation attribute CucumberOptions.tags must be a constant expression".
So seems it only wants constants rather than a parameterised value. Anyone know a clever way round this?
The getProperty(String key) method in Java is used to returns the system property denoted by the specified key passed as its argument.It is a method of the java. lang. System Class. where key is the name of the System property.
This how you do it: mvn test -Dcucumber. options="--plugin junit:target/cucumber-reports/report. xml". Please look at our Cucumber Report to see what all reports you can generate using @CucumberOptions.
You can use the cucumber.options
environmental variable to specify the tags at runtime
mvn -D"cucumber.options=--tags @Other,@Now" test
This supercedes the tags already contained in the test code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With