如何从命令行运行Spring Boot的project-test.jar测试包?
从命令行运行Spring Boot测试Jar包的方法
没问题,我来帮你搞定这个事儿。你的PolicyTest是个标准的Spring Boot集成测试类,要运行对应的project-test.jar,得注意测试Jar本身一般不是直接可执行的,得结合JUnit和Spring的依赖来启动,下面是具体步骤:
第一步:先确认测试Jar的结构
先解压project-test.jar看看,确保里面有编译好的PolicyTest.class,并且在正确的包路径下——这能避免后续因为类找不到踩坑。
第二步:用Maven整理依赖(最省心的方式)
既然你是Netbeans开发的Maven项目,先执行这条命令把所有依赖Jar复制到target/dependency目录:
mvn dependency:copy-dependencies
这样就不用手动找一堆依赖Jar了。
然后直接用这条命令运行你的测试类:
java -cp "target/project-test.jar:target/dependency/*" org.junit.runner.JUnitCore com.yourpackage.PolicyTest
记得把com.yourpackage换成PolicyTest实际所在的包名哦。
如果想一次性跑测试Jar里的所有测试类,把类名换成测试类所在的包名就行:
java -cp "target/project-test.jar:target/dependency/*" org.junit.runner.JUnitCore com.yourpackage
第三步:手动指定依赖的备选方案(不推荐)
要是你没用到Maven的依赖复制功能,就得手动把所有需要的Jar(JUnit 4、Spring Boot Test、Spring Core这些)都加到类路径里,命令大概是这样:
java -cp "project-test.jar:junit-4.13.2.jar:spring-boot-test-2.7.0.jar:spring-test-5.3.23.jar:..." org.junit.runner.JUnitCore com.yourpackage.PolicyTest
这种方式太麻烦,容易漏依赖,除非万不得已别用。
可选:把测试Jar做成可执行的
如果你想让测试Jar能直接用java -jar运行,可以在pom.xml里加个Maven插件配置,把测试类和所有依赖打包成一个胖Jar:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>org.junit.runner.JUnitCore</mainClass> <addClasspath>true</addClasspath> </manifest> </archive> <appendAssemblyId>false</appendAssemblyId> <outputDirectory>${project.build.directory}</outputDirectory> <finalName>project-test-executable</finalName> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <includes> <include>**/test-classes/**</include> </includes> </configuration> </execution> </executions> </plugin>
配置完运行mvn package,会生成project-test-executable.jar,之后直接用这条命令就能跑测试了:
java -jar project-test-executable.jar com.yourpackage.PolicyTest
内容的提问来源于stack exchange,提问作者Bilal Sipra
相关产品推荐
相关产品推荐

