如何找到 Surefire/Junit4 测试将搜索的类路径?

use*_*914 3 java junit maven

我需要重写作为基于 Maven 的构建的一部分运行的 JUnit 测试中的一些属性。为了做到这一点,我需要弄清楚在我们的测试环境中放置覆盖文件的位置。如何确定该行在测试环境中运行时正在检查的类路径?

stream = getClass().getClassLoader().getResourceAsStream(resourceName);
Run Code Online (Sandbox Code Playgroud)

我已经检查了 ClassLoader 的 javadoc,但在这一点上还不是很清楚。

Mat*_*ell 5

要查找类路径,您可以简单地使用maven 的dependency:build-classpath插件:

mvn dependency:build-classpath -DincludeScope=test
Run Code Online (Sandbox Code Playgroud)

这将为您提供运行 Surefire 时使用的完整类路径。实际上,includeScope=test 是默认的,所以你可以忽略它。否则,您可以指定任何范围,例如编译:

mvn dependency:build-classpath -DincludeScope=compile
Run Code Online (Sandbox Code Playgroud)