LoginSignup
5

More than 5 years have passed since last update.

maven 3.3 java 8 な環境で jacocoを使ってコードカバレッジを出すのが大変だった

Posted at

本記事は、jacocoの導入関連の記事や公式ドキュメントを読んでも、導入がうまくいかなかった人に向け解決策の1つの可能性を示すものである。

みんながうまくいくかは知らない。

なぜなら筆者自身Mavenとかよくわかってないからだ。

前提

javaのバージョン

java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

mavenのバージョン

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.8.0_74, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.3", arch: "x86_64", family: "mac"

CIサーバ上でも同様だったのでOSは関係ないだろう。

関連技術

  • jacoco
    • コードカバレッジを計測してくれるライブラリ
    • maven用のプラグインも提供している
    • 本記事ではこのmaven pluginを使う

jacocoの導入

jacocoのusageを読もう。
サンプルのpom.xmlもある。
Qiitaにいろんな記事があるので、タグから探るのもいいでしょう。

コレでうまく行った人はすみやかにこの記事を閉じましょう。

ちなみに自分は以下の様なエラーから無限に抜け出せなかった。

$ mvn jacoco:report
[ERROR] No plugin found for prefix 'jacoco' in the current project and in the plugin groups

ちょくせつmvnのコマンドライン引数でゴールを指定する

最終的にgithubでコード検索したところ。かなりのリポジトリでpom.xmlに書いてないということがわかった。

何の事はないしかるべきタイミングでorg.jacoco:jacoco-maven-pluginというprefixをつかって指定すればいいのだ。
つまりこんな感じ

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent test
mvn org.jacoco:jacoco-maven-plugin:report

まとめ

素直にやってダメなら、org.jacoco:jacoco-maven-pluginをコマンドライン引数で指定する。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5