【问题标题】:Tests failing in Maven install from command line but passing from Eclipse UI从命令行安装 Maven 但从 Eclipse UI 传递的测试失败
【发布时间】:2012-01-18 12:38:01
【问题描述】:

我在我的 Java 项目中使用 Maven,IDE 是 Eclipse。我的项目中几乎没有测试用例,当我从 Eclipse 进行 Maven 安装时,我的测试用例通过了,但是当我从命令行进行 Maven 安装时,我所有的测试用例都失败了。我的项目具有以下目录结构: 源/ 主要的/ 爪哇/ 资源/ 测试/ 爪哇/ 资源/

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

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

谢谢。

【问题讨论】:

  • 除非您提供一些我们无法提供帮助的细节。
  • 我可以看到我已经在我的问题中给出了细节,你应该尝试至少阅读一次!
  • 没有错误信息。没有代码。没有什么可处理的。

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    我解决了这个问题添加

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

    致我的pom.xml

    【讨论】:

    • 有趣的是,这似乎正是我遇到的问题。 Eclipse 自动将 JUnit 添加到类路径中,但 e2m 的自动生成的 POM 不包含 JUnit 作为依赖项。给未来的读者更新版本的小注解。截至发布时,JUnit 现在是 4.11 版。
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2016-03-22
        • 2016-05-17
        • 1970-01-01
        • 2017-07-29
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 2016-01-29
        • 1970-01-01
        相关资源
        最近更新 更多