java如何像在JAR中一样使用Maven运行单元测试?
我们最近遇到了一个错误,原因是一些代码假设类路径资源可以像打开普通文件一样打开。通过的单元测试涵盖了这段代码,因为这种假设在Maven和Eclipse中都适用。但在生产中,该代码在服务战争中被放在一个罐子里,显然不起作用
我们修复了这个错误,但我不太满意,因为我不知道如何确保它不会再次发生
你可以在下面搜索框中键入要查询的问题!
我们最近遇到了一个错误,原因是一些代码假设类路径资源可以像打开普通文件一样打开。通过的单元测试涵盖了这段代码,因为这种假设在Maven和Eclipse中都适用。但在生产中,该代码在服务战争中被放在一个罐子里,显然不起作用
我们修复了这个错误,但我不太满意,因为我不知道如何确保它不会再次发生
# 1 楼答案
单元测试使用Surefire运行。这种情况发生在
mvn test
期间,“测试”发生在包装之前。但是如果你想在mvn package
之后运行测试,你应该使用Failsafe下面是一些关于配置类路径的very relevant documentation。默认情况下,它会将
${project.build.outputDirectory}
放在类路径中,但您应该能够通过将classesDirectory设置到其他目录来防止这种情况。然后,您可以添加自己的jar作为additionalClasspathElements或dependenciesToScan