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

问题描述 投票:0回答:2

我正在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.ZoweAuthServiceTest.testQueryToZowe(ZoweAuthServ iceTest.java:40)中的com.MyServer.services.ZoweAuthService引起:java.lang.ClassNotFoundException:com.MyServer.services.ZoweAuthService

java maven
2个回答
0
投票

你可以使用这篇文章的主要答案:

How to run JUnit test cases from the command line

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


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>` 
© www.soinside.com 2019 - 2024. All rights reserved.