Cucumber 通过命令行使用 Cucumber 功能文件的标签对 gradle 项目执行测试
Cucumber Test execution for gradle project via command line using tags for cucumber feature files
我希望通过命令行使用特定功能标签为 gradle 项目执行黄瓜测试。
我正在使用的命令:gradle test -DCucumber.options="-tags @tagname"
。
命令确实执行提到的标签。
我试过使用 gradle 测试 -DCucumber.options="-tags @tagname"
和 gradle test
。我没有发现这两个命令有任何区别。
gradle test -DCucumber.options="-tags @tagname"
执行此文件中提到的 Runtest.java 和标签,无论我通过命令行传递的功能标签是什么,例如:tagname.
Runtest.java
@RunWith(Cucumber.class)
@CucumberOptions(features = "src\test\resources\featurefiles", monochrome = true, plugin = {
"com.eis.listeners.ExtentCucumberFormatter:" }, glue = {
"com.adminconsole.stepdefs" },tags= {"@adminconsolelogin,@devicemanager,@certificatemanagement"} ,format = { "json:JsonReports/AdminConsole.json" })
所以这里我在Runtest.java中提到了三个标签。
现在,我不想 运行 设置所有标签,而是想通过命令行 运行 一个特定的标签。
命令:gradle test -DCucumber.options="-tags @adminconsolelogin"
,但 -DCucumber.options="-tags @adminconsolelogin"
部分不工作。
我正在寻找可以 运行 特定标签的解决方案,而不管 Runtest.java 中提到的标签是什么。更精确地通过命令行动态传递标签。
但是 -DCucumber.options="-tags @tagname"
无法通过命令行工作。
如果有人能为我提供正确的命令或策略或代码,我将不胜感激。如果以下命令有误:gradle test -DCucumber.options="-tags @tagname"
请指正。
更新:对于 Cucumber 6,您需要提供以下声明:
test {
systemProperty "cucumber.filter.tags", System.getProperty("cucumber.filter.tags")
}
您必须在 gradle JVM 和派生的 JVM 之间桥接系统属性,才能使测试正常工作。来自问题#1346:
test {
systemProperty "cucumber.options", System.getProperty("cucumber.options")
}
将其添加到您的 build.gradle,然后您可以在 command-line:
gradle test -Dcucumber.options="-tags @tagname"
你需要添加这个
test {
systemProperty "cucumber.options", System.getProperty("cucumber.options")
}
CLI 命令将是
gradle test -Dcucumber.options="--tags @tagName"
我希望通过命令行使用特定功能标签为 gradle 项目执行黄瓜测试。
我正在使用的命令:gradle test -DCucumber.options="-tags @tagname"
。
命令确实执行提到的标签。
我试过使用 gradle 测试 -DCucumber.options="-tags @tagname"
和 gradle test
。我没有发现这两个命令有任何区别。
gradle test -DCucumber.options="-tags @tagname"
执行此文件中提到的 Runtest.java 和标签,无论我通过命令行传递的功能标签是什么,例如:tagname.
Runtest.java
@RunWith(Cucumber.class)
@CucumberOptions(features = "src\test\resources\featurefiles", monochrome = true, plugin = {
"com.eis.listeners.ExtentCucumberFormatter:" }, glue = {
"com.adminconsole.stepdefs" },tags= {"@adminconsolelogin,@devicemanager,@certificatemanagement"} ,format = { "json:JsonReports/AdminConsole.json" })
所以这里我在Runtest.java中提到了三个标签。
现在,我不想 运行 设置所有标签,而是想通过命令行 运行 一个特定的标签。
命令:gradle test -DCucumber.options="-tags @adminconsolelogin"
,但 -DCucumber.options="-tags @adminconsolelogin"
部分不工作。
我正在寻找可以 运行 特定标签的解决方案,而不管 Runtest.java 中提到的标签是什么。更精确地通过命令行动态传递标签。
但是 -DCucumber.options="-tags @tagname"
无法通过命令行工作。
如果有人能为我提供正确的命令或策略或代码,我将不胜感激。如果以下命令有误:gradle test -DCucumber.options="-tags @tagname"
请指正。
更新:对于 Cucumber 6,您需要提供以下声明:
test {
systemProperty "cucumber.filter.tags", System.getProperty("cucumber.filter.tags")
}
您必须在 gradle JVM 和派生的 JVM 之间桥接系统属性,才能使测试正常工作。来自问题#1346:
test {
systemProperty "cucumber.options", System.getProperty("cucumber.options")
}
将其添加到您的 build.gradle,然后您可以在 command-line:
gradle test -Dcucumber.options="-tags @tagname"
你需要添加这个
test {
systemProperty "cucumber.options", System.getProperty("cucumber.options")
}
CLI 命令将是
gradle test -Dcucumber.options="--tags @tagName"