如何在 maven 和 eclipse 中正确使用范围“test”和 junit

我试图了解我在使用 Eclipse 的 Maven 中使用 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。” 如果将依赖范围从测试更改为编译,我不会收到此错误消息,但这不是范围的使用方式,是吗?


我需要改变什么,eclipse 也理解,这个类是一个测试类,因此所有依赖项实际上都可用?


慕侠2389804
浏览 124回答 1
1回答

摇曳的蔷薇

该问题似乎与 Eclipse 认为您的源代码树从何处开始有关。您已将代码放入src/main/java/hello,src/main/test/hello但 Eclipse 认为源代码树从src.&nbsp;所以它认为其他文件夹是包,并为您的类提供了包名称,如main.java.hello.Greeter.解决此问题的最快方法是在命令行上运行:mvn&nbsp;eclipse:eclipse它使用 maven 来修复你的 eclipse 项目。它会自动将源根设置为正确的值。完成后,右键单击项目并选择Refresh查看更新的项目。要手动修复此问题,您可以右键单击项目并选择,Build Path > Configure Build Path并在Source右侧的选项卡中确保将整个src/main/java(最多java!)作为源文件夹包含在内。通过在 下的树中单击Add Folder并选择来执行此操作。对.&nbsp;通常 Maven 项目也包括作为源文件夹。javasrc - mainsrc/main/testsrc/main/resources
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java