【问题标题】:Why is Eclipse reporting a JUnit compilation error when I can compile and run the test fine in a terminal?当我可以在终端中正常编译和运行测试时,为什么 Eclipse 会报告 JUnit 编译错误?
【发布时间】:2015-04-29 17:37:58
【问题描述】:

我在 Mac 10.9.5 上使用带有 Java 6 的 Eclipse Juno。我有一个 Maven(使用 3.2.3 版)项目,“我的项目”,并且正在尝试编译和运行(在 Eclipse 中)一个使用来自另一个项目的类的 JUnit 测试。在我的 JUnit 测试中,我有

import org.mainco.subco.test.utils.AbstractNTsubcoTests;

这会产生 Eclipse 编译错误,“无法解析导入 org.mainco.subco.test.utils.AbstractNTsubcoTests。”我在“myproject”的 pom.xml 文件中有这个依赖项……

        <dependency>
                <groupId>org.mainco.subco</groupId>
                <artifactId>other project</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
                <scope>test</scope>
        </dependency>

其中包括类。此外,在 Eclipse 中,我包含了具有此类的另一个项目。在终端中,我可以编译并运行这个 Just test 就好了。我试着跑了

mvn eclipse:eclipse

在我的“myproject”根目录中的终端中,并在 Eclipse 中刷新“我的项目”(甚至重新启动 Eclipse)。然而,这个编译错误仍然存​​在。如何让它消失并让我的测试在 Eclipse 中编译和运行?

【问题讨论】:

  • mvn eclipse:eclipse 不会像你想象的那样做。如果你在 Eclipse 中打开你的pom.xml,然后转到“Dependency Hierarchy”,你能找到一个文件“other project-${project.version}.jar”吗?您的主目录中有文件.m2/repository/org/mainco/subco/other project/other project-${project.version}.jar 吗?
  • 第一个问题的答案是肯定的,就这一点而言,“otherproject - 78.0.0-SNAPSHOT - tests [test]”出现在我的依赖层次结构中。第二个问题的答案也是肯定的。
  • 所以我假设 .jar 也出现在 Eclipse 项目中的“Maven 依赖项”下?打开有问题的类文件,然后执行 Source > Organize Imports。
  • 是的,存在依赖关系。我打开了发生编译错误的 JUnit Java 文件(您的意思是 .java 而不是 .class,对吗?)并执行 Source -> Orgnaization Imports。一些东西被打乱了,但编译错误仍然存​​在。
  • 这看起来好像你得到了错误的依赖 .jar。在Eclipse中,能不能展开jar,看看能不能找到里面的class?

标签: eclipse maven junit compilation


【解决方案1】:

我知道这个问题很老了,但这也发生在我使用 2020 年最新的 eclipse 版本。

最后,我不得不配置项目的构建路径,在“源”选项卡中,向下滚动到 src/test/java 文件夹并将“包含测试资源”从 false 更改为 true(双击) .

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 2013-08-05
    • 2011-08-30
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    相关资源
    最近更新 更多