0

jmockitを使用してコードカバレッジテストを行っています。コード カバレッジからいくつかのクラスを除外する必要があります。Eclipse でクラスを除外するために使用される VM 引数は次のとおりです。

-Djmockit-coverage-excludes=com\.jmockit\.beans\..+

このドキュメントを参照しました。今必要なのは、複数のクラスを除外する必要があるということです。-Djmockit-coverage-excludes=packageA+packageBパッケージを組み合わせて引数として渡し、両方のパッケージをコードカバレッジから除外するにはどうすればよいですか。

4

2 に答える 2

0

| Rogérioによる上記の回答は、Windowsでは機能しません(JMockitではうまくいきます)。文字は特殊文字です。| をエスケープするには ^ を追加する必要があります。

例えば

-Djmockit-coverage-excludes=packageA\..+^|packageB\..+^|com\.mydomain\..+

これにより、このソリューションはクロスプラットフォームではなくなります。開発は Windows で行われ、ビルド サーバーは Linux であるため、これは私たちにとって深刻な問題です。

カバレッジ プラグインは、これらのコマンド ライン引数を追加する以外に、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>
于 2013-11-15T11:31:29.217 に答える
0

この文字を使用し|て、特定のパッケージまたはパッケージのグループごとに複数の正規表現を区切ることができます。例えば:

-Djmockit-coverage-excludes=packageA\..+|packageB\..+|com\.mydomain\..+
于 2013-11-14T10:46:59.253 に答える