从命令行在Maven安装中测试失败但从Eclipse UI传递

时间:2012-01-18 12:38:01

标签: eclipse maven eclipse-plugin maven-plugin emma

我在Java项目中使用Maven,IDE是Eclipse。我的项目中有很少的测试用例,当我从eclipse进行Maven安装时,我的测试用例正在传递,但是当我从命令行进行Maven安装时,我的所有测试用例都失败了。我的项目有以下目录结构: SRC /   主要/     的Java /     资源/   测试/     的Java /     资源/

另外,对于我的测试用例,我必须使用来自main / resources的少量配置。我怀疑从命令行运行测试用例(mvn clean install)时,它不会在main / resources中查找资源,因此是错误。

任何人都可以告诉我怎样才能让maven在主要/资源中查找我的测试用例中的配置?此外,如果您怀疑错误是其他原因,请发表评论。

感谢。

4 个答案:

答案 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/resourcessrc/test/resources中有两个文件名相同的文件。来自src/test/resources的文件不正确,但正在覆盖src/main/resources中较新的文件。

我的解决方案是简单地从src/test/resources删除文件。

答案 3 :(得分:0)

我通过禁用我的防火墙解决了这个问题 - Comodo - 即使我告诉它不要沙箱肯定的罐子,该死的东西仍然阻止它。禁用沙箱,一切都很好。