如何在 Maven 项目中使用 JUnit 测试运行器?

我创建了带有依赖项的快速入门 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 时,它返回编译错误,因为在 junit 依赖项是“test”。如果我更改或删除依赖项的范围,我将无法从 App 访问 AppTest 类。


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


犯罪嫌疑人X
浏览 139回答 2
2回答

冉冉说

你永远不应该从 App 类访问 Test 类(坦率地说,你不能)。测试代码与您的主代码完全分离。测试代码可以访问您的主代码,但您的主代码永远无法访问您的测试代码。这个很重要。您的测试代码应该验证您的真实代码。如果主代码可以访问测试代码,那么您可能会破坏您试图验证的内容。测试依赖项被标记为“测试”范围,以确保 Maven 知道它们与主代码无关。

子衿沉夜

您无法从 App 类访问 AppTest。junit 依赖项有一个测试范围,这意味着 junit 依赖项(库)仅用于编译和运行测试,因此无法从您的主代码(即 App 通常位于 src/main 中)访问它们。您的所有测试用例都应位于 src/test/java 中,并且在运行mvn test或mvn package(或任何将测试作为中间目标的目标)时由 maven 运行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java