webdevqa.jp.net

Androidマルチモジュールテストの依存関係

With Android Studio 3.0/Android_gradle_version = '3.0.1'/gradle-4.5

2つのAndroidモジュールがあるとしましょう

_module-base
module-a
_

Module-aのmodule-baseからソースにアクセスしたい場合は、module-a.gradleにこれを書き込む必要があります。

_dependencies {
implementation project(path: ':module-base')
}
_

しかし、module-aのテストでmodule-baseからテストソースにアクセスしたい場合はどうなりますか?上記のようなアプローチは機能しません

_dependencies {
testImplementation project(path: ':module-base')
}
_

私は次のようなことを言うアドバイス(数歳)をたくさん見つけました

_    compileTestJava.dependsOn tasks.getByPath(':module-base:testClasses')
    testCompile files(project(':module-base').sourceSets.test.output.classesDir)
_

またはtestCompile project(':module-base).sourceSets.test.classes

しかし、言及された作品からの誰も。コンパイラの観点からは常に何か問題があります:-/

誰かがAndroid 2つのモジュール間のコード依存関係をテストする方法を教えてくれませんか?

15
kotoMJ

実際、私はこれに対する回避策を見つけました。 module-baseのテストソースを使用しないでください。ただし、次のように定義されているテスト関連モジュールmodule-testutilsのソースを使用してください。

dependencies{
   testImplementation project(':module-testutils')
}

したがって、テスト不可能なapkから除外される共通のテストコードを共有できます。

1
kotoMJ