我有2个模块:A and B.
-A是一个独立的模块。它的测试本身运行得很好。
-B是一个依赖模块。它的测试需要某个文件A的测试文件夹(一个测试文件位于B延伸一英寸A)
以下是我认为的相关部分B's 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'
}
虽然这在技术上可以满足我的需要 - 但它会产生令人讨厌的副作用,每当我跑步时A的单元测试,他们还运行所有B的测试。如果情况并非如此,我真的很希望。
我正在使用 Android Gradle 1.1(以及 Android Studio 1.1),我认为这给我带来了一些问题。我已经尝试了所有我能找到的解决方案 - 不幸的是,它们似乎都不适用于 Android Gradle 1.1 - 例如:
删除sourceSets
from B's build.gradle
并添加(到B的依赖项)行
testCompile project(':A').sourceSets.test.output
产生构建错误Could not find property 'test' on SourceSet container.
我是否以错误的方式处理这个问题?是否有更简单/更好的方法来跨模块包含测试文件?我对 Gradle/Android Studio 还很陌生,所以我完全有可能错过了一个明显的解决方案。
使用命令按树检查所有模块:
gradle projects
它将列出您的所有项目模块,您可以查看是否以正确的方式配置子项目。还运行命令:
gradle --gui
它将列出所有模块的所有任务,并且您始终可以独立于其他模块运行一个模块,例如
gradle A:tasks
gradle A:test
gradle B:test
OR both
gradle A:tasks B:test
注意:如果是根项目和B、C、D子模块,则不需要指定A,但对于子模块,则需要指定它。当你这样做时:
gradle --gui
您可以双击任何任务以查看其运行方式,也可以从命令行手动执行相同的操作。希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)