【问题标题】:How to use scope "test" and junit correctly with maven and eclipse如何在 Maven 和 Eclipse 中正确使用范围“测试”和 junit
【发布时间】:2019-01-19 23:53:57
【问题描述】:

我试图了解我在 Maven 中使用 eclipse 的 junit-tests 做错了什么。主要是我一直在关注 Maven 的“入门指南”: https://spring.io/guides/gs/maven/

但对我来说,在 junit 方面并不完全如此。

为了遵循示例中的确切文件夹结构,我在 Eclipse 中将我的包命名为 src: main.java.hello test.java.hello

我的测试类 GreeterTest.java 位于 test.java.hello 包中,内容如下:

package test.java.hello;

import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.*;

import org.junit.Test;

import main.java.hello.Greeter;

public class GreeterTest {

    private Greeter greeter = new Greeter();

    @Test
    public void greeterSaysHello() {
        assertThat(greeter.sayHello(), containsString("Hello"));
    }

}

在我的 pom.xml 中你找到了依赖:

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

不幸的是,eclipse 说“无法解析导入 org.junit。” 如果将依赖项的范围从 test 更改为 compile,我不会收到此错误消息,但这不是预期使用范围的方式,是吗?

我需要更改哪些 eclipse 也知道,这个类是一个测试类,因此所有依赖项实际上都是可用的?

最好的,尼尔斯

【问题讨论】:

  • 您的班级有包test.java.Hello 的事实表明您的项目布局可能不正确。请显示您的项目的树结构,特别是您的测试的位置。
  • 确保测试代码不在文件夹src/main/java,而是在文件夹src/test/java(见this short video)。也许您还必须右键单击该项目并选择 Maven > Update Projects...。如果这没有帮助,请添加显示文件位置的 Package Explorer 视图的屏幕截图。

标签: java eclipse maven junit


【解决方案1】:

这个问题似乎与 Eclipse 认为您的源代码树从哪里开始有关。您已将代码放入 src/main/java/hellosrc/main/test/hello,但 Eclipse 认为源代码树从 src 开始。所以它认为其他文件夹是包,并给你的类包名称,如main.java.hello.Greeter

解决此问题的最快方法是在命令行上运行:

mvn eclipse:eclipse

它使用 maven 来修复您的 Eclipse 项目。它会自动将源根设置为正确的值。完成后,右击项目,选择Refresh即可查看更新后的项目。

要手动修复此问题,您可以右键单击项目并选择 Build Path &gt; Configure Build Path,然后在右侧的 Source 选项卡中,确保包含整个 src/main/java(直到 java!)作为源文件夹。通过单击Add Folder 并在src - main 下的树中选择java 来执行此操作。对src/main/test 执行相同的操作。通常 maven 项目也包含 src/main/resources 作为源文件夹。

【讨论】:

    猜你喜欢
    • 2013-07-22
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多