我的测试套件之前有以下声明:
@CucumberOptions(features = "src/test/resources/", plugin = {"pretty",
"json:target/cucumber.json"})
如果我从 Idea 中运行该文件,这可以工作,但是如果我从命令行运行 mvn verify
,它就不起作用。
如果我把它改成
@CucumberOptions(features = "../src/test/resources/", plugin = {"pretty",
"json:target/cucumber.json"})
...它适用于mvn verify
,但不适用于Idea。我可以鱼和熊掌兼得吗?
最佳答案
你可以吃你的杯子。如果您有一个具有标准布局的 Maven 项目,并且所有 Cucumber 功能都在 src/test/resources
中,则通过完全省略 features
来运行测试应该可以在两者中工作。
如果您实际上将 Cucumber 功能放在非标准位置(例如在父 Maven 项目中),您可以让命令行与 ../src/test/resources
一起使用,并更改 Run/Debug configuration 的工作目录。到正确解析相对路径的任何目录。您可以更改特定配置或默认配置,这样它将对通过右键单击自动生成的任何配置生效。
或者,您还应该能够使用 src/test/resources
并设置 working directory的 maven-surefire-plugin ,但最好让 IDE 向命令行倾斜,而不是相反。
关于java - @CucumberOptions 中的路径将在 Idea 或 mvn verify 中工作,但不能同时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35183732/