从测试罐运行JUnit测试时,找不到类异常

时间:2019-04-30 15:22:20

标签: java maven

我正在Windows Eclipse环境中构建项目,然后尝试在Unix环境中使用测试jar测试项目jar。当我跑步时,我得到如下所示。我正在将Maven与程序集插件一起使用,以将项目与Test Jar打包在一起,当我运行-tf命令时,可以看到Jar内缺少的类。

java -cp MyServerTest.jar:junit.jar junit.runner.JunitCore com.MyServer.services.ZoweAuthServiceTest

结果:

java.lang.NoClassDefFoundError:com.MyServer.services.ZoweAuthService         在com.MyServer.services.ZoweAuthServiceTest.testQueryToZowe(ZoweAuthServ iceTest.java:40) 引起原因:java.lang.ClassNotFoundException:com.MyServer.services.ZoweAuthService

2 个答案:

答案 0 :(得分:0)

您可以使用本文的主要答案:

How to run JUnit test cases from the command line

确保从jar的当前目录运行,并相应地将其调整为junit版本。

答案 1 :(得分:0)

我知道了。我想我应该提到我正在使用spring-boot。 Spring将我的项目的主类放在jar文件“ BOOT-INF”中的特殊前缀下,这可以防止测试类找到要测试的类。我将classifer exec添加到了pom中。这将创建两个单独的罐子。一种用于执行,另一种具有用于测试的常规类引用。

`<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <classifier>exec</classifier>
    </configuration>
</plugin>`