【发布时间】:2020-07-24 22:18:15
【问题描述】:
我继承了由 cucumber、junit 和 selenium 框架组成的 java maven 项目,除了 Junit 之外我是新手。我注意到它的 pkg 名称在 src/test/java 而不是 src/main/java 下。
src/test/java
com.somewhere.test
FooRunner.java
有人告诉我,我可以通过在 Eclipse IDE 中右键单击 Run as > Junit Test 从 FooRunner 类运行 junit 测试。
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(features="src/test/resources/com/sowhere/test/features",tags = {"@Test"}, plugin = {
"pretty",
"junit:target/results.xml",
"html:target/cucumber"},
dryRun = false)
public class FooRunner {
public static void main(String[] args) {
}
}
我能够很好地运行它的单元测试。我的问题是我需要这个 mvn 项目来生成 executable jar 文件然后能够从
运行它的单元测试java -jar Foo.jar
我通过更新 pom.xml 文件并添加 public static void main 方法将这个线程跟踪到 Running Cucumber tests directly from executable jar 但是当我执行 jar 文件时收到以下错误消息..
Error: Could not find or load main class com.somewhere.test.FooRunner
我将 jar 更改为 zip,然后将其全部解压缩。令人惊讶的是,我没有看到 pkg 名称 com.somewhere.test 但我看到了外部库的其他 pkg,例如 cucumber 等。是的 META-INF/MANIFEST.MF 是我相信有适当的数据。
我很想知道为什么 pkg(即 com.somewhere.test)与类(即 FooRunner.class)一起丢失
更新:
我从这个帖子中找到了答案:How can I include test classes into Maven jar and execute them?
【问题讨论】:
-
请更新您的 pom.xml 文件