2010-05-18 147 views
4

我们在通常由maven surefire插件执行的JUnit测试中使用过滤的testResources。也就是说,pom包含一个部分调试maven junit测试过滤资源?

<build> 
    <testResources> 
     <testResource> 
     <directory>src/test/resources</directory> 
     <filtering>true</filtering> 
     </testResource> 
    </testResources> 
    ... 

如何在调试器中运行此类JUnit测试?如果我在eclipse中执行测试,测试失败,因为测试资源没有被过滤。如果过滤后的测试资源将写入目标目录的某处,我可以将其用作额外的源路径 - 但事实并非如此。如果我尝试使用Debug As/maven test在eclipse中运行maven build,那么构建不会停在断点处。任何其他想法?

回答

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构建,然后手动将目标/测试类目录添加到您的IDE配置中。工程,但是有点狡猾。

1

如果我在eclipse中执行测试,测试失败,因为测试资源没有被过滤。

使用m2eclipse并且资源将在Eclipse内被过滤。