Androidでmulti moduleなプロジェクトでjacocoレポートをマージする際の罠
ハマったので・・・
下記のようなプロジェクトがあったとします。
└── project's root
├── target module
├── related module 001
・・・
└── related module 002
ここでjacocoでカバレッジを取得しようと試みました。
欲しいのはあくまでtarget moduleのカバレッジです。
related module XXXはtarget moduleの公開APIをテストするモジュールです。
例えばAndroidでライブラリ開発をするケースで、target moduleは本体、related moduleはサンプルアプリとなるので↓のような感じでテストを書いています。
target moduleはJUnitrelated moduleはEspresso
で、カバレッジをjacocoで取得し、結果を集計しようとしますが、マージされない物が出てきます・・・
深く調べていないので結論だけ書きますが、
ターゲットモジュールの名前が昇降順で先頭にならないとレポートのマージに失敗します
期待通りにマージできる例
└── project's root
├── target module name is "aaa"
├── related module name is "bbb"
└── related module name is "ccc"
期待通りにマージできない例
└── project's root
├── target module name is "zzz"
├── related module name is "bbb"
└── related module name is "ccc"
暇で暇で仕方ない日が訪れたら、深く潜ってみても良いかもしれません。。