2017-06-18 6 views
0

ここに要点は...ヤココエージェント - 出力なし

私はdocker-composeを使用しています。私のアプリはRESTサービスのコレクション(埋め込み式のTomcatを搭載した春のブート)なので、基本的にはエンドポイントのテストに固執しています。私は、テスト(それは別個のモジュール全体にあります)を使ってプロジェクトを構築したいときはいつでも、gradleとgradle docker-composeプラグインを使用します。何が起こるのは、コンパイル後にフルビルド中に、ドッカー作成のgradleプラグインがすべてのサービスを起動し、アプリケーションコンテナが稼働していて健康状態になるまで待ち、http要求(テスト)の束を実行するだけです。

私の考えは、完全なCIビルド中に、すべてのhttpテストが実行されたときにカバレッジデータを生成する、jacocoエージェントを含むドッカーコンテナでアプリケーションを起動することです。しかし、ファイル出力は常に空のままです。

私はアプリのコンテナ -javaagent:\jacoco\jacocoagent.jar=destfile=\tmp\jacoco.exec,includes=my.company.*,append=true,dumponexit=false

JAVA_OPTSに以下の追加と\tmp\jacoco.execが作成されますが、0バイトで、そのとどまります。 私が使用するJacocoのバージョンは0.7.9です。間違ったことをやっているのですか、ジャココの代理人が何をしているのか分かりませんか? destfile=...と一緒

答えて

1

dumponexit=falseファイルがだけあなたの意図ではないAPIリクエスト(http://www.jacoco.org/jacoco/trunk/doc/api/org/jacoco/agent/rt/IAgent.html#dump(boolean))、上、VMをシャットダウン(http://www.jacoco.org/jacoco/trunk/doc/agent.html)に書き込まれないことを意味し、私は推測します。したがってをtrueに設定するか、またはtrueがデフォルトであるため、まったく指定しないでください。

+0

ああ、私はgithubのjacocoソースを調べました。私は最良の選択肢は 'tcpserver'モードでエージェントを実行している間にexecデータを取得することだと考えました。 – Xeperis