🪤

(罠?)multi moduleなAndroidでプロジェクトでjacocoレポートをマージが上手くいかないとき

2021/01/31に公開

ハマったので・・・

下記のようなプロジェクトがあったとします。

└── project's root
    ├── target module
    ├── related module 001
    ・・・
    └── related module 002

ここでjacocoでカバレッジを取得しようと試みました。

欲しいのはあくまでtarget moduleのカバレッジです。
related module XXXtarget moduleの公開APIをテストするモジュールです。
例えばAndroidでライブラリ開発をするケースで、target moduleは本体、related moduleはサンプルアプリとなるので↓のような感じでテストを書いています。

  • target moduleJUnit
  • related moduleEspresso

で、カバレッジを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"

暇で暇で仕方ない日が訪れたら、深く潜ってみても良いかもしれません。。

Discussion