eclipse - 使用过滤的资源调试 maven junit 测试?

标签 eclipse maven-2 junit surefire

我们在通常由 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/

相关文章:

java - ECLIPSE 上的 TOMCAT java.sql.SQLException : No suitable driver found for jdbc:mysql

c++ - 如何在eclipse上调试图像处理项目?

maven-2 - Maven : how to export project with sources and dependencies

java - 嵌套 Maven 多模块相对于简单依赖的优势

java - 在windows 8命令行上编译Junit报错

eclipse - 在GGTS(Eclipse)中运行时,为什么Grails 3单元测试会引发StackOverflowError?

eclipse - 刷新 Eclipse 中的 Sonar 违规

maven-2 - 指定 JDK 供 Maven 使用

java.lang.AssertionError : Content type not set - Spring Controller Junit Tests 错误

java - 同一个类java中的模拟函数