我正在开发一个桌面应用程序,它将执行自动测试用例。用户可以从GUI中选择执行类型:按功能/按场景/按tagName。现在,我正在使用maven并在CMD中执行命令来执行测试用例,我想切换到TestNG执行,但是我需要从配置文件CucumberOptions中动态设置,

@CucumberOptions(features = { "src/test/resources/features/" }, tags = { "@Test3" }, glue = { "stepdefinitions" }, plugin = { "listeners.ExtentCucumberFormatter:" })
public class TestNGRunner extends AbstractTestNGCucumberTests {
}


但是CucumberOptions需要一个常量表达式,我无法设置它们。

有什么办法可以做到吗?

最佳答案

您可以通过命令行参数传递黄瓜选项:


  您可以列出适用于您所使用的黄瓜版本的选项
  使用。
  
  传递--help选项以打印出所有可用配置
  选项:
  
  java cucumber.api.cli.Main --help
  
  要么:
  
  mvn test -Dcucumber.options="--help"
  
  您还可以使用标签来指定要运行的内容。
  
  配置选项也可以被覆盖并传递给任何
  通过Cucumber.options Java系统属性运行。
  
  例如,如果您正在使用Maven并希望运行
  用@smoke标记的场景:
  
  mvn test -Dcucumber.options="--tags @smoke"
  
  提供了将选项传递给黄瓜的其他机制。一些跑步者


Cucumber Options Documentation

09-30 18:47