通过eclipse运行JUnit测试时的Maven surefire参数

Kil*_*ahn 7 eclipse junit m2eclipse maven maven-surefire-plugin

关于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>
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

yor*_*rkw 9

Eclipse JUnit Launcher(选择Run As -> JUnit Test)是一个独立的测试运行器,它有自己的预定义构建和运行生命周期,与Maven无关,它不会神奇地拾取你的pom并在surefire配置中读取并使用它们来驱动测试运行.

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

希望这是有道理的.

  • 如果在target/surefire-reports中打开XML文件,则可以在Eclipse的JUnit视图中查看Surefire的测试报告. (8认同)