【问题标题】:Debugging maven junit tests with filtered resources?使用过滤的资源调试 maven junit 测试?
【发布时间】:2011-02-20 19:01:48
【问题描述】:

我们在 JUnit 测试中使用过滤的 testResources,这些测试资源通常由 maven surefire 插件执行。也就是pom包含一个section

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

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

【问题讨论】:

    标签: eclipse maven-2 junit surefire


    【解决方案1】:

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

    使用m2eclipse,资源将在 Eclipse 中被过滤。

    【讨论】:

      【解决方案2】:

      有多种选择。首先,您可以从指定 maven.surefire.debug 的命令行运行测试。默认情况下,surefire 测试在分叉的 JVM 中运行,这意味着如果您只是调试 maven 进程,您将不会在测试断点处停止。这可能就是你现在所看到的。另见http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

      否则,我建议在 IDE 中将您的项目配置为 maven 项目。如果项目配置为 maven 项目,则资源过滤将在运行测试之前自动发生。至少它在 Idea 中是这样工作的,我认为 Eclipse 在安装正确的 maven 插件时也是如此。

      您也可以从命令行运行一次 maven 构建,然后手动将 target/test-classes 目录添加到您的 IDE 配置中。有效,但有点狡猾。

      【讨论】:

        猜你喜欢
        • 2014-08-02
        • 2011-04-13
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 2011-09-10
        • 1970-01-01
        • 2011-02-28
        相关资源
        最近更新 更多