7

私たちは、SpockをJavaベースのEEアプリケーションのテストフレームワークとして試してみることにしました。現在、私たちは、jenkins + maven + jacocoに基づいて配備されたCIインフラストラクチャを持っています。SpockとJenkins、Sonarを統合するベストプラクティス

Q:この問題を解決するにはどうすればよいでしょうか?推奨事項、ベストプラクティス

答えて

4

あなたのツールチェーンでは、Java/JUnitと比べて唯一違うのは、Groovy(テスト)コンパイルがMavenで動作するようにすることです(spock-exampleプロジェクトを参照)。 Spockは自動的に起動するカスタムJUnitランナーなので、特別な操作は必要ありません。あなたは同じレポートを取得します。SpockとJUnitのテストを同じソースディレクトリに置いて一緒に実行することもできます。

+2

Aaron McDowell氏の回答によれば、SonarQubeサーバーにGroovyプラグインをインストールして、SonarがGroovyテストファイルを認識できるようにする必要があります。 –

2

実際には、Sonarとの統合が困難な場合があります。 Sonar Surefireセンサーが確実にあなたの確実なレポートを見つけます。ただし、センサはSonarに公開するためにテストソースにリンクしようとします。これを行うと、.javaというファイル拡張子が仮定されます。

[INFO] [13:00:34.734]センサーSurefireSensor ...
[INFO] [13:00:34.735]パース/ホーム/だから、このようになりますあなたのビルドで出力が表示されます。 amcdowel/AccuRevの/ projectFoo /ターゲット/確実な-レポート
[WARN] [13:00:34.747]が見つかりませんリソース:com.abc.monitor.app.model.MonitorTest

あなたによって生成されたコードカバレッジSpockテストはSonarダッシュボードで正常にレポートされますが、単体テスト数と成功/エラー数は含まれません。

+1

SonarQubeサーバーにGroovyプラグインをインストールすると、これは当てはまりません。プラグインをインストールし、sonar.testsプロパティを更新してGroovyソースディレクトリをインクルードし、Sonar Mavenタスクを再実行することで、プロジェクトのGroovy(Spock)テストを表示することができました。 ' src/test/java、src/test/groovy' –