【问题标题】:Maven surefire arguments when running JUnit test via eclipse通过 Eclipse 运行 JUnit 测试时的 Maven 肯定参数
【发布时间】:2012-09-05 18:05:30
【问题描述】:

一个关于 Maven - Surefire - Eclipse - JUnit 的新手问题

我已经在我的项目的 pom 文件中配置了 maven-surefire-plugin 来传递一些额外的 JVM 参数,如下所示:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven.surefire.plugin.version}</version>
            <configuration>
                <argLine>-d64 -Xms128m -Xmx4096m -XX:PermSize=512m -Duser.timezone=UTC -XX:-UseSplitVerifier</argLine>
            </configuration>
        </plugin>

当我从 Eclipse 作为 Run As->JUnit Test 运行此项目的测试用例时,虽然类路径设置正确,但调用中不包含在 argLine 中指定的其他参数。我必须去手动输入相关Debug Configurations 下的参数。我不太明白 JUnit 如何知道它需要将测试范围的 jar 放在类路径上,并且在某种程度上意味着 Eclipse 中的 JUnit 工具通过 M2E 知道 Maven?如果是这样,我们怎样才能让它也读取 argLine。我知道这听起来很具体 - 但其他人在类似情况下如何管理?

提前致谢!

【问题讨论】:

  • 您可以通过在 Eclipse 内 lancher 定义的 Arguments 选项卡中输入程序参数来向 Junit 启动配置添加程序参数。
  • 请注意,您需要将虚拟机的参数和程序本身的参数分开。
  • 我看到 IntelliJ 完全符合我的预期。

标签: eclipse maven junit m2eclipse maven-surefire-plugin


【解决方案1】:

Eclipse JUnit Launcher(选择Run As -&gt; JUnit Test)是一个独立的测试运行器,它有自己的预定义构建和运行生命周期,与Maven无关,它不会神奇地拿起你的pom并在万无一失的情况下阅读配置并使用它们来驱动测试运行。

如果您的项目作为现有 Maven 项目导入,请使用 Maven(选择 Run as -&gt; Maven test)启动您的 JUnit 测试,该测试将获取并使用 surefire 配置。这与从命令行运行mvn test 完全相同,它只在控制台输出运行日志,您将无法使用漂亮的红色和绿色 JUnit UI 窗口。

希望这是有道理的。

【讨论】:

  • 如果 Eclipse JUnit 是一个独立的测试运行器,它如何根据测试范围知道它需要放在类路径中的 jar 包?
  • 感谢您的信息!然后下一步是查看 m2eclipse 是否也可以读取 surefire 插件配置的 argLine 并以某种方式填充该项目中测试的调试配置以获取来自 argLine 的参数,对吗?还是这要求太高? :)
  • 我喜欢运行 JUnit 测试时出现的红绿色,并且与运行 Maven 测试相比,我更容易看到异常和测试结果。但是手动为所有测试用例添加这些参数是一件痛苦的事情。但是,如果没有选择,我们别无选择! :)
  • 如果您在 target/surefire-reports 中打开 XML 文件,您可以在 Eclipse 的 JUnit 视图中查看 Surefire 的测试报告。
  • m2e 挂钩到很多地方,包括 junit 测试运行器启动器。让它注入这些信息是完全有效的。
猜你喜欢
  • 2013-11-08
  • 2011-08-30
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 2019-07-26
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多