Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMUnit 2.x 以降、カバー率レポートのゴールは Maven のレポートセクションと統合されています。カバー率レポートは、coverage-report
ゴール中の Maven の site
ライフサイクル中に生成されます。
次の設定は、Maven プラグインを使用して MUnit テストを実行する場合のみ適用されます。Studio からテストを実行する場合は適用されません。
Studio でカバー率レポートを実行するには、「Studio でのカバー率の使用」を参照してください。
<plugin>
<groupId>com.mulesoft.munit.tools</groupId>
<artifactId>munit-maven-plugin</artifactId>
<version>${munit.version}</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
<goal>coverage-report</goal>
</goals>
</execution>
</executions>
<configuration>
<coverage>
<runCoverage>true</runCoverage>
<failBuild>false</failBuild>
<requiredApplicationCoverage>75</requiredApplicationCoverage>
<requiredResourceCoverage>50</requiredResourceCoverage>
<requiredFlowCoverage>50</requiredFlowCoverage>
<formats>
<format>console</format>
<format>html</format>
</formats>
</coverage>
</configuration>
</plugin>
MUnit カバー率を有効にすると、コンソールにサマリーレポートが表示されます。デフォルトでは、他のアクションは実行されません。
===============================================================================
MUnit Coverage Summary
===============================================================================
* Resources: 2 - Flows: 3 - Processors: 4
* Application Coverage: 75.00%
====================================================================================
MUnit カバー率には 4 つのレポートタイプがあります。
コンソールレポート
コンソールレポートはコンソールに出力されます。サマリーレポートと連携して、すべてのリソース、フロー、プロセッサーの数、および全体のアプリケーションカバー率レベル、警告とエラー (存在する場合) を含む、MUnit 実行の概要が表示されます。
HTML レポート
HTML レポートにはコンソールレポートと同じ情報が表示されますが、Web ブラウザーに合わせて書式設定されます。このレポートは、${application.path}/target/site/munit/coverage/
にあります。+
JSON レポート
JSON レポートには、HTML レポートと同じ情報が表示されますが、形式は JSON です。このレポートは、${application.path}/target/site/munit/coverage/munit-coverage.json
にあります。+
SONAR レポートには、SonarQube レポートと同じ情報が JSON 形式で表示されます。
レポート生成を有効にするには、次の設定を追加します。
<coverage>
<runCoverage>true</runCoverage>
<formats>
<format>console</format> (1)
<format>html</format> (2)
<format>json</format> (3)
<format>sonar</format> (4)
</formats>
</coverage>
1 | コンソールレポート |
2 | HTML レポート |
3 | JSON レポート |
4 | SONAR レポート |
設定に追加できるレポートタイプは、none (なし)、one (1 つ)、または all (すべて) です。
たとえば、JSON レポートの生成を設定するには、pom.xml
ファイルに次の設定を追加する必要があります。
<coverage>
<runCoverage>true</runCoverage>
<formats>
<format>json</format>
</formats>
</coverage>
MUnit カバー率の機能の 1 つは、特定のカバー率レベルに到達しない場合にビルドを失敗させることです。
MUnit カバー率は 3 つの異なるレベルを処理します。
アプリケーション: すべてのアプリケーションの全体的なカバー率。
リソース: 個々の Mule 設定ファイルのカバー率レベル。
フロー: 各フローのイベントプロセッサーのカバー率。
必要なカバー率レベルを定義する方法は、次のとおりです。
<coverage>
<runCoverage>true</runCoverage>
<failBuild>true</failBuild>
<requiredApplicationCoverage>75</requiredApplicationCoverage> (1)
<requiredResourceCoverage>50</requiredResourceCoverage>
<requiredFlowCoverage>50</requiredFlowCoverage>
</coverage>
1 | 各値はパーセントを表します。 パーセントが定義されていない場合はデフォルトで -1 が設定され、そのレベルの要件が定義されていないことを示し、カバー率が低いためにビルドは失敗しません。 |
カバー率レベルを定義してプロパティ failBuild
を false に設定し、レベルに到達していない場合、MUnit カバー率サマリーに警告が表示されます。
===============================================================================
MUnit Coverage Summary
===============================================================================
* Resources: 2 - Flows: 3 - Processors: 4
* Application Coverage: 75.00%
----------------------------- WARNING --------------------------------------
* Flow: file2.xml -> file2Flow1 coverage is below defined limit. Required: 50.0% - Current: 00.00% (1)
====================================================================================
1 | どのカバー率レベルが満たされていないか、カバー率レベルがどこで発生したかの詳細が示された警告。 |
もう 1 つの機能は、フローまたはファイルを無視する機能です。これにより、無視されたリソースには次が適用されます。
カバー率データに含まれない。
メッセージプロセッサーの総数には影響しない。
フローがテストされていない場合、またはフローがカバー率メトリクスに到達していない場合でも、ビルドは失敗しない。
フローおよびファイルを無視する方法
<coverage>
<runCoverage>true</runCoverage>
<failBuild>true</failBuild>
<requiredApplicationCoverage>100</requiredApplicationCoverage>
<requiredResourceCoverage>100</requiredResourceCoverage>
<requiredFlowCoverage>100</requiredFlowCoverage>
<ignoreFlows>
<ignoreFlow>flow-1</ignoreFlow>
<ignoreFlow>flow-2</ignoreFlow>
...
<ignoreFlow>flow-n</ignoreFlow>
</ignoreFlows>
<ignoreFiles>
<ignoreFile>mule-config-1.xml</ignoreFile>
<ignoreFile>mule-config-2.xml</ignoreFile>
...
<ignoreFile>mule-config-n.xml</ignoreFile>
</ignoreFiles>
</coverage>