In the following post I will share a quick tip on how to set up Idea to run scenario from feature file
Intellij IDEA 2016.2 CE is used as IDE
Target audience: QA Automation engineers / developers
DISCLAIMER: It is assumed that reader has some experience with Cucumber test tool and Cucumber for Java plugin is installed for Intellij Idea.
Problem: Why do we need configurations?
Cucumber features and separate tests can be run using custom runner classes. In this classes you can set up various configurations, such as: features and tags to run, output formatters, etc.
For example:
package steps
import cucumber.api.CucumberOptions
import cucumber.api.junit.Cucumber
import org.junit.runner.RunWith
@RunWith(classOf[Cucumber])
@CucumberOptions(
features = Array("classpath:features"),
glue = Array("classpath:steps"),
tags = Array("@wip"),
monochrome = true,
plugin = Array("pretty",
"html:target/cucumber",
"json:target/cucumber/test-report.json",
"junit:target/cucumber/test-report.xml")
)
class TestRunner {}
But at some point you may want to have possibility to run feature or single scenario just within feature file.
And if you test project has a non trivial structure, Cucumber may not see package with Step Definitions - as a result scenario will not be executed and signals that step definitions were not found.
Below you will a find a tip on how to handle such situation.
Solution: How to set up default configuration for Cucumber?
Just follow the next steps:
- Open Edit and Configurations window
- Open list of default configurations
- Find Cucumber for Java configuration
- Set main class - e.g. cucumber.api.cli.Main
- Fill glue section with name of package, where step definitions located
- Set VM options and classpath if it is needed
- Save default configuration
- Run any scenario or feature just by right click on it’s name and select “Run scenario” or “Run feature”
NOTE: By default Cucumber will automatically generate program arguments and path to feature file each time, when you run any scenario or feature.
Conclusion
Default configuration can be very useful in day to day activities for running / debugging any single scenario or while refactoring step definition code.