如何在Maven项目中使用JUnit Test Runners?

时间:2018-09-10 13:31:48

标签: java maven junit

我已经创建了具有依赖关系的quickstart maven项目:

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

我有源课程:

main.java.test.App

和测试班级:

test.java.test.AppTest

因此,当我尝试在App类中创建Result对象并使用JUnitCore时,它会返回编译错误,因为in junit依赖项是“ test”。如果我更改依赖项的范围或从依赖项中删除范围,则无法从App访问AppTest类。

是否可以在Maven配置中使用测试运行器?

2 个答案:

答案 0 :(得分:2)

您无法从您的App类访问AppTest。

junit依赖项的范围为 test ,这意味着junit依赖项(库)仅用于编译和运行测试,因此无法从您的 main 进行访问。 >代码(通常位于src / main中的App)。

您所有的测试用例均应位于src / test / java中,并且在运行mvn testmvn package(或任何将测试作为中间目标的目标)时将由maven运行

答案 1 :(得分:2)

您应该从不访问App类中的Test类(坦白地说,您不能)。

测试代码与您的主代码完全分开。测试代码可以访问您的主代码,但是您的主代码永远无法访问您的测试代码

这很重要。您的测试代码应该可以验证您的真实代码。如果主代码可以访问测试代码,那么您可能会破坏您要验证的内容。

将测试依赖项标记为“测试”范围,以确保Maven知道它们与主代码无关。