我正在使用jmockit进行代码覆盖测试。 我需要从代码覆盖中排除一些类。 用于在eclipse中排除类的VM参数是
-Djmockit-coverage-excludes=com\.jmockit\.beans\..+
我提到了this文档。
我现在需要的是,我需要排除多个类。
我如何组合包并将其作为参数传递
说-Djmockit-coverage-excludes=packageA+packageB
从代码覆盖范围中排除这两个包。
答案 0 :(得分:0)
您可以使用|
字符分隔多个正则表达式,每个正则表达式用于特定包或一组包。例如:
-Djmockit-coverage-excludes=packageA\..+|packageB\..+|com\.mydomain\..+
答案 1 :(得分:0)
Rogério的上述答案在Windows中不起作用(在JMockit btw上做得很好)作为|角色是一个特殊的角色。逃避|你需要添加^。
e.g。
-Djmockit-coverage-excludes=packageA\..+^|packageB\..+^|com\.mydomain\..+
这使得这个解决方案不是跨平台的。对我们来说,这是一个真正的问题,因为开发是在Windows上,构建服务器是linux。
coverage插件是否可以从pom中的插件读取配置属性,而不是添加这些命令行参数,如果是,那么标记是什么?
编辑: 我已经更新了我的POM以这种方式处理这个问题:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<argLine>-XX:MaxPermSize=256m -XX:-UseSplitVerifier ${jmockit-coverage-options}</argLine>
</configuration>
</plugin>
...
<profiles>
<profile>
<id>os-windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<!-- See: http://code.google.com/p/jmockit/issues/detail?id=322 -->
<!-- See: http://code.google.com/p/jmockit/issues/detail?id=323 -->
<jmockit-coverage-options>-Djmockit-coverage-outputDir=target/coverage-report -Djmockit-coverage-classes=PackageC\..+ -Djmockit-coverage-excludes=packageA\..+^|packageB\..+^|com\.mydomain\..+</jmockit-coverage-options>
</properties>
</profile>
<profile>
<id>os-unix</id>
<activation>
<os>
<family>unix</family>
</os>
</activation>
<properties>
<!-- See: http://code.google.com/p/jmockit/issues/detail?id=322 -->
<jmockit-coverage-options>-Djmockit-coverage-outputDir=target/coverage-report -Djmockit-coverage-classes=PackageC\..+ -Djmockit-coverage-excludes=packageA\..+|packageB\..+|com\.mydomain\..+</jmockit-coverage-options>
</properties>
</profile>