java - 无法在 spring boot jar 中运行命令 cucumber - 未找到后端。请确保您的 CLASSPATH 上有一个后端模块
问题描述
我正在尝试通过 cucumber.api.cli.Main.main 运行黄瓜,但它给出了以下错误(请注意,在 IDE 中它工作正常)
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:109)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: cucumber.runtime.CucumberException: No backends were found. Please make sure you have a backend module on your CLASSPATH.
at cucumber.runtime.Runtime.<init>(Runtime.java:81)
at cucumber.runtime.Runtime.<init>(Runtime.java:70)
at cucumber.runtime.Runtime.<init>(Runtime.java:66)
at cucumber.api.cli.Main.run(Main.java:35)
at cucumber.api.cli.Main.main(Main.java:18)
at br.com.xxx.service.xxx.test.TesteCucumber.main(TesteCucumber.java:17)
... 8 more
我的主要课程
@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = { "br.com.xxx" })
@SpringBootApplication
public class TesteCucumber {
public static void main(String[] args) throws Throwable {
String[] arguments = {"..\\src\\test\\resources\\","-g", "br.com.xxx.service.xxx.test.cucumber.steps"};
cucumber.api.cli.Main.main(arguments);
}
}
我的 pom 配置
<properties><cucumber.version>1.2.5</cucumber.version></properties>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>gherkin</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>${cucumber.version}</version>
</dependency>
spring boot jar中的所有依赖项都可以
我已经在一些堆栈中搜索过类似的问题,但我没有得到答案
你能帮我解决这个错误吗?提前致谢。
解决方案
我以这种方式解决了问题
在 pom.xml 中,我配置了 maven 以添加主类 cucumber.api.cli.Main
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>cucumber.api.cli.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
我删除了 TesteCucumber.class
我运行 mvn 包
我将所有 jar 依赖项复制到文件夹 /lib/
我运行下面的命令行:
java -jar myjar.jar --glue br.com.xxx.service.hub.test.cucumber.steps "C:\...\src\test\resources\file.feature"
推荐阅读
- hugo - 如何在 HUGO 中获取 {{.GitInfo}}?
- python - 如何通过机器学习识别句子中的某些单词?
- vb.net - 如何在发送之前在我的 pdf 中设置密码?
- javascript - 三星互联网浏览器上的全屏高度不一致
- java - 将 assets 文件夹中的自定义 gif 加载到 recyclerview android
- java - 如何使用 jhipster 在 Kafka 集群上设置多个代理
- python - 如何使用 json 文件中的“时间戳”将 DataFrame 设置为从 X 日到 Y 日,而不是从 X 年到 Y 年?
- android - 如何在列表视图中将搜索结果显示为 SearchView 的下拉列表?
- python-3.x - 在 tkinter GUI 中更新温度读数
- html - 如何固定表头的位置并仅滚动表体