私はWildfly 9サーバー上でJava Webアプリケーションを実行していますが、jmeter-maven-pluginを使用して、実行中のアプリケーションでいくつかのパフォーマンステストを実行します。これらのテストでは、アプリケーションのサービスに対して簡単なRESTリクエストが実行されます。JaCoCoエージェントはコードカバレッジ情報をトラッキングしていません
パフォーマンステストのコードカバレッジ統計情報を取得して、パフォーマンステストの対象コードの量がわかるようにします。
次へthisthisthis StackOverflowスレッドサーバーでJaCoCo Javaエージェントをセットアップしました。これは、私はそれが実行情報を取得するには、サーバー上でダンプを実行できるようにするために、テストのMavenプロジェクトでjacoco-maven-pluginを構成し、
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:/path/to/jacocoagent.jar=output=tcpserver,address=*,port=6300,includes=my.package.*"
また、起動時にエージェント構成です。だから、
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<configuration>
<destFile>${sonar.jacoco.itReportPath}</destFile>
<append>false</append>
</configuration>
<executions>
<execution>
<id>jacoco-dump</id>
<phase>verify</phase>
<goals>
<goal>dump</goal>
</goals>
<configuration>
<address>my.server</address>
<skip>${skipJMeterTests}</skip>
<!-- <reset>true</reset> -->
</configuration>
</execution>
</executions>
</plugin>
、私はmvn verify
を実行すると、すべてのパフォーマンステストを実行します(そうRESTサービスが実際に呼ばれている)とJaCoCoプラグインが正しくjacoco.execファイルサーバーをダンプしますが、私はmvn sonar:sonar
を実行し、このファイルを検査したときに私が得ますサービスがパフォーマンステストによって呼び出されたにもかかわらず、コードの0%のカバレッジ。
何が問題なのですか?私はエージェントとプラグインの異なる設定を試みたが、私の問題を解決していないようだ。
が
複数のものを同じバージョンのソフトウェアを使用していませんでした。 1)ランタイムクラスは、レポートを実行しているクラスと同じバージョンですか? 2)サーバー起動ファイルも、Jacocoよりも先に他のJavaエージェントを起動していますか(例:Wiley Introscope)?これは、ジャココが他のエージェントによって計測されたクラスを取得している必要があるため、問題を引き起こす可能性があります。 –
どのようにカバレッジを見つけるのですか?カバレッジを決定するサーバーのプラグインにバージョンの問題がある可能性があります。 JaCoCoは0.7.5でexec形式を変更します。現在のJaCoCoバージョンを使用している場合は、最新のソナープラグインを使用する必要があります。私はJenkinsのJaCoCoプラグインと同じ問題を覚えています。 –
@ShashankKadne:1)はい、バージョンは同じです。 2)いいえ、サーバー上で実行されている他のjavaagentはありません。 – gvdm