Java 黄瓜命令行

Java 黄瓜命令行,java,automated-tests,cucumber,command-line-arguments,Java,Automated Tests,Cucumber,Command Line Arguments,我试图通过使用以下代码进行cucumber命令行调用来运行不同的测试 public class RunTest { public RunTest(String test){ System.out.println("you found me"); System.setProperty("protocol","https"); String[] argv = {"-p", "json:cucumber-report.json", "-g", "O

我试图通过使用以下代码进行cucumber命令行调用来运行不同的测试

public class RunTest {
    public RunTest(String test){
        System.out.println("you found me");        System.setProperty("protocol","https");
        String[] argv = {"-p", "json:cucumber-report.json", "-g", "Otto.CatalogTests", "classes/"+ test +".feature"};
        main(argv);
    }
}
但是,我收到以下错误消息:

Exception in thread "main" java.lang.NullPointerException
        at io.cucumber.messages.Messages$Meta$Builder.setProtocolVersion(Messages.java:6186)
        at io.cucumber.core.runtime.CucumberExecutionContext.emitMeta(CucumberExecutionContext.java:59)
        at io.cucumber.core.runtime.CucumberExecutionContext.startTestRun(CucumberExecutionContext.java:47)
        at io.cucumber.core.runtime.Runtime.run(Runtime.java:71)
        at io.cucumber.core.cli.Main.run(Main.java:76)
        at io.cucumber.core.cli.Main.main(Main.java:33)
        at Otto.CommandLine.RunTest.<init>(RunTest.java:16)
        at Otto.CommandLine.ArgumentHandler.executeArguments(ArgumentHandler.java:63)
        at Otto.CommandLine.ArgumentHandler.<init>(ArgumentHandler.java:28)
        at Otto.CommandLine.Main.main(Main.java:28)
看来我没有设置协议版本,我怎么能这样做呢

我尝试了
System.setProperty(“协议”、“https”)但这不起作用,我也不知道什么协议是最佳实践


感谢您的帮助。

您似乎正在使用Cucumber
v6.0.0-RC2
。而且看起来你也在给你的项目添加阴影。在这种情况下,您必须将实现和规范版本添加到清单文件中。如果您碰巧正在使用maven,您可以使用
maven jar插件


org.apache.maven.plugins
maven jar插件
3.2.0
真的
真的

Gradle应该有自己的等价物。

看起来您使用的是Cucumber
v6.0.0-RC2
。而且看起来你也在给你的项目添加阴影。在这种情况下,您必须将实现和规范版本添加到清单文件中。如果您碰巧正在使用maven,您可以使用
maven jar插件


org.apache.maven.plugins
maven jar插件
3.2.0
真的
真的
Gradle应该有自己的等价物

public Messages.Meta.Builder setProtocolVersion(String value) {
    if (value == null) {
        throw new NullPointerException();
    } else {
        this.protocolVersion_ = value;
        this.onChanged();
        return this;
    }
}