我们在通常由 maven surefire 插件执行的 JUnit 测试中使用过滤的 testResources。也就是说,pom 包含一个部分
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
...
如何在调试器中运行此类 JUnit 测试?如果我在 Eclipse 中执行测试,则测试将失败,因为未过滤测试资源。如果过滤后的测试资源将写入目标目录的某处,我可以将其用作额外的源路径 - 但事实并非如此。如果我尝试使用 Debug As/maven test 在 Eclipse 中运行 maven 构建,则构建不会在断点处停止。还有其他想法吗?
最佳答案
有几种选择。首先,您可以从指定 maven.surefire.debug 的命令行运行测试。默认情况下,surefire 测试在 fork 的 JVM 中运行,这意味着如果您只是调试 Maven 进程,您将不会在测试断点处停止。这可能就是你现在看到的。另见 http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html
否则,我建议将您的项目在 IDE 中配置为 Maven 项目。如果项目被配置为 Maven 项目,资源过滤将在运行测试之前自动进行。这至少是它在 Idea 中的工作方式,我认为 Eclipse 在安装了正确的 maven 插件后也是如此。
您还可以从命令行运行一次 maven 构建,然后手动将 target/test-classes 目录添加到您的 IDE 配置中。有效,但有点狡猾。
关于eclipse - 使用过滤的资源调试 maven junit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2855706/