ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – Maven:surefire插件在已配置时忽略-Dgroups

2019-05-17 18:47:48  阅读:253  来源: 互联网

标签:java junit maven surefire


我的项目有一些我很少想运行的JUnit测试.为此我将它们放在@Category中,然后我这样做了:

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
   <!-- Run all but the inject tests -->
   <configuration>
      <groups>!be.test.InjectTests</groups>
   </configuration>
</plugin>

我想在命令行中覆盖配置以运行Inject测试,如下所示:

mvn clean install -Dgroups=be.test.InjectTests

但这不起作用,-Dgroups被Maven忽略了.

如果我不把命令工作正常.

解决方法:

不幸的是,似乎如果在pom中设置了某些东西,它就不容易被覆盖(如果你明确地设置了skipTests,那么很难用属性覆盖)……但是! (这有点像黑客)您可以将属性的设置推迟到pom属性,然后在命令行上覆盖它.

<project>
...
<properties>
    <groups>!Slow</groups>
<properties>
....
<build>
    <plugins>
        ...
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <version>2.13</version>
           <configuration>
            <groups>${groups}</groups>
           </configuration>
        </plugin>
    </plugins>
</build>
...

有了这个(以及一个快速构建的项目,在OSX上运行,Maven 3.0.4,Java 1.6.0_37):

$mvn clean test
...
Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
...
$mvn clean test -Dgroups=Slow
...
Results :

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0

标签:java,junit,maven,surefire
来源: https://codeday.me/bug/20190517/1123343.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有