3

我在我的 Java 项目中使用 Maven,IDE 是 Eclipse。我的项目中几乎没有测试用例,当我从 Eclipse 进行 Maven 安装时,我的测试用例通过了,但是当我从命令行进行 Maven 安装时,我所有的测试用例都失败了。我的项目有以下目录结构:src/main/java/resources/test/java/resources/

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

谁能告诉我如何让 maven 在我的测试用例中查找 main/resources 中的配置?另外,如果您怀疑错误是其他原因,请发表评论。

谢谢。

4

4 回答 4

3

如果您的测试使用 maven 命令行失败,请确保您的测试存在问题。您不能依赖 eclipse,或者更确切地说是 m2Eclipse,因为 m2eclipse 无法为您提供正确的类路径。

例如,在 Eclipse 中,你可以从 src\main\java 中的一个类引用 src\test\java 中的一个类,你不会得到任何编译错误。当然,在 maven(或具有良好 maven 集成的 IDE,如 intelliJ)中,编译会失败,这是应该的。在 eclipse 中运行测试很好(比 maven 命令行更快/更容易),但是您必须执行的实际测试(例如在提交到 svn 之前)是使用 maven 命令行进行全新安装。

更新
解决您的问题: src/main/resources 在 maven (surfire) 运行测试时位于类路径中

于 2012-01-18T13:06:46.177 回答
3

我遇到了同样的问题,使用 JUnit 在 Eclipse 中测试一切正常,但在mvn test控制台中测试时在 Maven 中失败。

我解决了这个问题

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

到我的pom.xml.

于 2012-09-21T14:07:05.057 回答
0

我有相同症状的略有不同的问题。

src/main/resources我在和中有两个文件名相同的文件src/test/resources。来自的文件src/test/resources不正确,但正在覆盖来自src/main/resources.

我的解决方案是简单地从src/test/resources.

于 2013-09-04T21:53:07.180 回答
0

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

于 2014-10-31T19:31:27.730 回答