現在、モジュールレベルでJUnitの総カバレッジを最小限に抑えています。だから、もし総ラインカバレッジがある値(私の場合は80%)を下回っていれば、ビルドは失敗します。そのために、私はmaven-surefire-pluginをmaven-enforcer-plugin、JUnitとJMockitで使用しました。 pomファイルの一部は次のようになります。クラスレベルでJUnitの総カバレッジを最低限に抑えますか?
<build>
<plugins>
....
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>2.18.1</version>
</dependency>
</dependencies>
<configuration>
<systemPropertyVariables>
<coverage-outputDir>${basedir}/target/coverageReport</coverage-outputDir>
<coverage-output>html,merge</coverage-output>
<coverage-check>80</coverage-check>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>coverage.check</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>test</phase>
<configuration>
<rules>
<requireFilesDontExist>
<files>
<file>coverage.check.failed</file>
</files>
</requireFilesDontExist>
</rules>
</configuration>
</execution>
</executions>
</plugin>
....
</build>
<dependencies>
....
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit-coverage</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
....
</dependencies>
私の問題は、一部のクラスは非常に80%以下の範囲とビルドがまだある限り、合計カバレッジがない80%を下回っているとして渡すかもしれない、ということです。
したがって、クラスレベルで私のカバレッジを適用する方法はありますか?
+1本当にありがとうございます。そしてあなたに完全に同意します。実際、私はこのアイデアを答えにしています。しかし、執行が唯一の選択肢である時があります。ですから、私はもっと技術的な解決策をとっていきます。しかし、本当にいい説明と答え。 – mavi
あなたは大歓迎です。それであなたに運が欲しい。うまくいけば、誰があなたにあなたが探している "本当の技術的な"答えを与えることができるのでしょうか? – GhostCat