Android TDD:Robolectric&;格拉德尔
就在我用Android TDD:Robolectric&;格拉德尔,android,tdd,android-gradle-plugin,robolectric,Android,Tdd,Android Gradle Plugin,Robolectric,就在我用安卓maven插件实现了一个有效的开发和构建环境的时候,新来的孩子Gradle开始进军安卓领域。由于Groovy不受欢迎,android gradle插件几乎和操作系统本身一样零碎,我遇到了一些问题。特别是围绕建设图书馆项目,与风味和我们的伙伴Robolectric 短版 遇到格拉德尔错误时,我不知下一步该怎么办 Cannot add a SourceSet with name 'testDebug' as a SourceSet with that name already exist
安卓maven插件
实现了一个有效的开发和构建环境的时候,新来的孩子Gradle开始进军安卓领域。由于Groovy不受欢迎,android gradle插件几乎和操作系统本身一样零碎,我遇到了一些问题。特别是围绕建设图书馆项目,与风味和我们的伙伴Robolectric
短版
遇到格拉德尔错误时,我不知下一步该怎么办
Cannot add a SourceSet with name 'testDebug' as a SourceSet with that name already exists.
该错误源于库中的ProductFlavors
(即移动到0.9.2 android构建系统)和团队最近在Robolectric从Jake的创建中分出的gradle android测试插件
(参见)。我已经完成了所有的调查,几乎筋疲力尽,我可以报告说,在我的库gradle文件中存在的'android-test'
插件让事情变得不对劲
较长版本
这是一个简略的应用程序build.gradle
文件,保留了相关信息
apply plugin: 'android-library'
apply plugin: 'android-test'
...
android {
compileSdkVersion 19
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 18
targetSdkVersion 19
versionCode buildNumber().toInteger()
versionName "1.0.0"
}
productFlavors {
estimote {
dependencies {
compile '<flavour specific dependency>'
}
}
radius {
dependencies {
compile '<flavour specific dependency>'
}
}
}
}
...
dependencies {
compile 'com.squareup.dagger:dagger:1.2.1'
compile 'com.squareup.dagger:dagger-compiler:1.2.1'
compile 'com.google.code.gson:gson:2.2.+'
// Testing dependencies
androidTestCompile 'org.mockito:mockito-core:1.9.5'
androidTestCompile 'com.squareup:fest-android:1.0.7'
androidTestCompile 'org.hamcrest:hamcrest-all:1.3'
androidTestCompile 'org.robolectric:robolectric:2.2'
androidTestCompile 'junit:junit:4.11'
}
如果你已经写了这么多了,请拍拍自己的背。现在,你们当中目光锐利的人可能已经注意到了sourceset
重定向上的省略,其命令类似于
sourceSets {
androidTest {
setRoot('src/test')
}
}
在纠正初始错误后,需要恢复这些线路,以告知gradle项目的结构。该项目的结构是标准的,看起来像
- project_name
+ gradle
- lib
+ flavour1
+ flavour2
- main
+ java
- test
+ java
build.gradle
build.gradle
gradle.properties
settings.gradle
正在使用什么
该应用程序使用的是gradle-1.10-all
、0.9.2android gradle
插件和0.9.+gradle android测试插件
问题
该项目应如何设置/更改,以便于在具有香味的库上进行机器人分子测试?这可能吗?我遇到了同样的问题,深入研究了代码,修复了它,并提交了一个刚刚合并的请求。有关详细信息,请参见我在PR上的解释,但归根结底是插件代码中的一个错误优化:
从今天起,您需要克隆repo并将插件构建并安装到本地maven repo。下次他们发布maven central(可能是0.13.1版?)时,您可以直接从那里使用插件。我遇到了同样的问题,因此如果您碰巧解决了这个问题,我希望您能更新解决方案。谢谢。没有解决这个特定问题的方法@Kevin,但是Android Studio和Robolectric的最新测试版似乎又恢复正常了。如果可以,请更新。。。
- project_name
+ gradle
- lib
+ flavour1
+ flavour2
- main
+ java
- test
+ java
build.gradle
build.gradle
gradle.properties
settings.gradle