mao*_*lin 19 testing android gradle
我在AndroidStudio项目中添加了两个模块:
app-base
|
|----src
|____androidTest
|________MyTestBase.java
app
|
|----src
|____androidTest
|________MyTest.java
Run Code Online (Sandbox Code Playgroud)
一些常见的测试类在app-base的androidTest中定义,并在app'androidTest中使用.
我试图在app的build.gradle中添加以下代码:
evaluationDependsOn(':app-base')
compile project(':app-base')
androidTestCompile project(':app-base')
Run Code Online (Sandbox Code Playgroud)
我在settings.gradle中包含了app-base和app,gradlew项目的输出是:
Root project 'MyProject'
+--- Project ':app-base'
+--- Project ':app'
Run Code Online (Sandbox Code Playgroud)
通过这种方式没有编译错误,但是当我在ide中运行MyTest时,它表示找不到类MyTestBase.
你知道什么是错的吗?任何想法都表示赞赏.谢谢.
Sti*_*oni 24
我一直在寻找解决方案一段时间,终于找到了对我有用的东西。
这将允许您将常见的测试类放在另一个模块中。
android {
...
sourceSets {
androidTest.java.srcDirs += ["${project('match the module name that is currently in the dependencies').projectDir}/src/androidTest/java"]
}
}
Run Code Online (Sandbox Code Playgroud)
所以对于上面的例子,它可能看起来像
androidTest.java.srcDirs += ["${project(':appbase').projectDir}/src/androidTest/java"]
Run Code Online (Sandbox Code Playgroud)
我建议你采取以下策略:创建一个新模块test-utils
并放入MyTestBase.java
该模块的主要来源.
test-utils
|
|----src
|____main
|________MyTestBase.java
Run Code Online (Sandbox Code Playgroud)
然后将其test-utils
作为测试依赖项添加到需要它的所有模块中
androidTestCompile project(':test-utils')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2585 次 |
最近记录: |