2

我正在使用 Maven cobertura 插件来检索我的单元测试代码覆盖,并通过命令行使用它:

mvn cobertura:cobertura

我想做的是从命令行配置排除项。从官方文档中可以看到,我们可以配置一个 Instrumentation 用户属性

此 Instrumentation Configuration 对象具有以下结构:

<instrumentation>
  <excludes>
    <exclude>com/example/dullcode/**/*.class</exclude>
  </excludes>
</instrumentation>

有没有办法只使用命令行形式来配置像上面这样的复杂对象

-Dcobertura.instrumentation.excludes.<something>=com/example/dullcode/**/*.class

?

4

1 回答 1

3

不,您不能在命令行上定义复杂的参数。但是您可以实现一个技巧来完成这项工作:定义一个您在命令行上覆盖的 Maven 属性。

您可以使用以下方式配置插件:

<instrumentation>
  <excludes>
    <exclude>${cobertura.instrumentation.exclude}</exclude>
  </excludes>
</instrumentation>

然后,在命令行上,有

-Dcobertura.instrumentation.exclude=com/example/dullcode/**/*.class

将正确排除这些类。如果您不指定系统属性,则不会排除任何内容。

于 2016-10-13T14:45:31.520 回答