我们在JUnit测试中使用过滤的testResources,这些测试通常由maven surefire插件执行。也就是说,pom包含一个部分
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
...
如何在调试器中运行此类JUnit-tests?如果我在eclipse中执行测试,测试将失败,因为测试资源未被过滤。如果过滤后的测试资源会写入目标目录的某处,我可以将其用作附加的源路径 - 但事实并非如此。如果我尝试使用Debug As / maven测试在eclipse中运行maven构建,则构建不会在断点中停止。还有其他想法吗?
答案 0 :(得分:4)
有几种选择。首先,您可以从命令行运行测试,指定 maven.surefire.debug 。默认情况下,surefire测试在分叉的JVM中运行,这意味着如果您只调试maven进程,则不会在测试断点中获得任何停顿。这可能就是你现在所看到的。另请参阅http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html
Othwerwise我建议在IDE中将项目配置为maven项目。如果项目配置为maven项目,则在运行测试之前将自动进行资源过滤。至少它是如何在Idea中运行的,我认为Eclipse在安装正确的maven插件时也是如此。
您还可以从命令行运行maven构建一次,然后手动将 target / test-classes 目录添加到IDE配置中。工作,但有点狡猾。
答案 1 :(得分:1)
如果我在eclipse中执行测试,测试将失败,因为测试资源未被过滤。
使用m2eclipse,资源将在Eclipse中过滤。