使用过滤的资源调试 Maven junit 测试?

2024-01-19

我们在 JUnit 测试中使用过滤后的 testResources,这些测试资源通常由 Maven Surefire 插件执行。即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 测试在分叉 JVM 中运行,这意味着如果您只是调试 Maven 进程,您将不会在测试断点处停止。这可能就是你现在看到的。也可以看看http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

否则,我建议在 IDE 中将您的项目配置为 Maven 项目。如果项目配置为 Maven 项目,则资源过滤将在运行测试之前自动进行。至少这就是它在 Idea 中的工作方式,我认为 Eclipse 在安装了正确的 Maven 插件后也会做同样的事情。

您还可以从命令行运行一次 Maven 构建,然后手动添加目标/测试类IDE 配置目录。有效,但有点狡猾。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用过滤的资源调试 Maven junit 测试? 的相关文章

随机推荐