如何使用Maven运行单元测试,就好像它们在JAR中一样?

时间:2013-09-10 20:26:20

标签: java eclipse unit-testing maven junit

我们最近遇到了一些代码导致的错误,假设可以像打开常规文件一样打开类路径资源。这个代码由传递的单元测试覆盖,因为这个假设碰巧同时存在于Maven和Eclipse中。但在生产中,该代码在服务的WAR中位于JAR中,显然不起作用。

我们修复了这个错误,但我不太满意,因为我看不出如何确保它不再发生。

1 个答案:

答案 0 :(得分:3)

使用Surefire运行单元测试。这种情况发生在mvn test期间,“测试”发生在包装之前。但是,如果您想在mvn package之后运行测试,则应使用Failsafe

这里有一些关于配置类路径的very relevant documentation。默认情况下,它会将${project.build.outputDirectory}放在类路径中,但您应该可以通过将classesDirectory设置为其他目录来阻止它。然后,您可以将自己的jar添加为additionalClasspathElementsdependenciesToScan