Zam*_*ezi 7 android gradle android-studio android-gradle-plugin
我有2个模块:阿和乙.
- A是独立模块.它的测试本身运行得很好.
- B是一个依赖模块.其测试需要在某个文件甲的测试文件夹(在一个测试文件乙延伸在一个甲)
这里是什么,我认为是相关部分乙的build.gradle:
android {
...
sourceSets {
test.java.srcDirs += "../A/src/test/java"
}
}
dependencies {
compile project(':A')
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.4'
testCompile 'org.mockito:mockito-core:1.9.5'
}
Run Code Online (Sandbox Code Playgroud)
虽然这在技术上适用于我需要的东西 - 它有令人讨厌的副作用,每当我运行A的单元测试时,它们也运行B的所有测试.我真的很想,如果不是这样的话.
我正在使用Android Gradle 1.1(以及Android Studio 1.1),我认为这会给我带来一些问题.我已经尝试了所有可以找到的解决方案 - 不幸的是,它们似乎都不适用于Android Gradle 1.1 - 例如:
除去sourceSets从乙的build.gradle和添加(以乙的依赖关系)的线
testCompile project(':A').sourceSets.test.output
Run Code Online (Sandbox Code Playgroud)
产生构建错误 Could not find property 'test' on SourceSet container.
我是以错误的方式来做这件事的吗?是否有更简单/更好的方法在模块中包含测试文件?我是Gradle/Android Studio的新手,所以我完全有可能错过了一个死明显的解决方案.
使用命令按树检查所有模块:
gradle projects
Run Code Online (Sandbox Code Playgroud)
它将列出您的所有项目模块,您可以查看是否以正确的方式配置子项目。还运行命令:
gradle --gui
Run Code Online (Sandbox Code Playgroud)
它将列出所有模块的所有任务,并且您始终可以独立于其他模块运行一个模块,例如
gradle A:tasks
gradle A:test
gradle B:test
Run Code Online (Sandbox Code Playgroud)
或两者
gradle A:tasks B:test
Run Code Online (Sandbox Code Playgroud)
注意:如果是根项目和B、C、D子模块,则不需要指定A,但对于子模块,则需要指定它。当你这样做时:
gradle --gui
Run Code Online (Sandbox Code Playgroud)
您可以双击任何任务以查看其运行方式,也可以从命令行手动执行相同的操作。希望这可以帮助
| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |