我在Java项目中使用Maven,IDE是Eclipse。我的项目中有很少的测试用例,当我从eclipse进行Maven安装时,我的测试用例正在传递,但是当我从命令行进行Maven安装时,我的所有测试用例都失败了。我的项目有以下目录结构: SRC / 主要/ 的Java / 资源/ 测试/ 的Java / 资源/
另外,对于我的测试用例,我必须使用来自main / resources的少量配置。我怀疑从命令行运行测试用例(mvn clean install)时,它不会在main / resources中查找资源,因此是错误。
任何人都可以告诉我怎样才能让maven在主要/资源中查找我的测试用例中的配置?此外,如果您怀疑错误是其他原因,请发表评论。
感谢。
答案 0 :(得分:3)
如果您的测试使用maven命令行失败,那么请确保您的测试存在问题。你不能依赖eclipse,或者说m2Eclipse,因为m2eclipse无法为你提供正确的类路径。
例如,在eclipse中你可以从src \ main \ java中的类引用到src \ test \ java中的类,你不会得到任何编译错误。当然,在maven(或具有像intelliJ这样的maven集成的IDE)中,编译将失败,因为它应该。在eclipse中运行测试很好(比maven命令行更快/更容易)但是你必须执行的实际测试(例如在提交到svn之前)是使用maven命令行进行干净安装。
<强>更新强>
解决您的问题:当maven(surfire)运行测试时,src / main / resources在类路径中
答案 1 :(得分:3)
我遇到了同样的问题,在使用JUnit的Eclipse中测试都没问题,但是当我在控制台中执行mvn test
时,maven就失败了。
我解决了这个问题,添加了
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
到我的pom.xml
。
答案 2 :(得分:0)
我的症状略有不同。
我在src/main/resources
和src/test/resources
中有两个文件名相同的文件。来自src/test/resources
的文件不正确,但正在覆盖src/main/resources
中较新的文件。
我的解决方案是简单地从src/test/resources
删除文件。
答案 3 :(得分:0)
我通过禁用我的防火墙解决了这个问题 - Comodo - 即使我告诉它不要沙箱肯定的罐子,该死的东西仍然阻止它。禁用沙箱,一切都很好。