我创建了带有依赖项的快速入门 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 配置中使用测试运行器?
2 回答
冉冉说
TA贡献1877条经验 获得超1个赞
你永远不应该从 App 类访问 Test 类(坦率地说,你不能)。
测试代码与您的主代码完全分离。测试代码可以访问您的主代码,但您的主代码永远无法访问您的测试代码。
这个很重要。您的测试代码应该验证您的真实代码。如果主代码可以访问测试代码,那么您可能会破坏您试图验证的内容。
测试依赖项被标记为“测试”范围,以确保 Maven 知道它们与主代码无关。
子衿沉夜
TA贡献1828条经验 获得超3个赞
您无法从 App 类访问 AppTest。
junit 依赖项有一个测试范围,这意味着 junit 依赖项(库)仅用于编译和运行测试,因此无法从您的主代码(即 App 通常位于 src/main 中)访问它们。
您的所有测试用例都应位于 src/test/java 中,并且在运行mvn test
或mvn package
(或任何将测试作为中间目标的目标)时由 maven 运行
添加回答
举报
0/150
提交
取消