是否可以在自己的模块中设置robolectric并将其作为依赖项添加到我的项目中?我可以将它添加到我的项目模块中,但是如果它在自己的模块中则更喜欢。我创建了一个javaLibrary模块,并将以下代码添加到gradle构建脚本
buildscript {
repositories {
mavenCentral()
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}
dependencies {
//Prior to AS 0.5.9: classpath 'org.robolectric.gradle:gradle-android-test-plugin:0.9.+'
classpath 'org.robolectric.gradle:gradle-android-test-plugin:0.10.0'
//previous plugin >> classpath 'com.novoda.gradle:robolectric-plugin:0.0.1-SNAPSHOT'
}
}
allprojects {
repositories {
mavenCentral()
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}
}
apply plugin: 'android'
apply plugin: 'android-test' //previously >> apply plugin: 'robolectric'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "com.irishtimes.newsapp.tests"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
androidTest.setRoot('src/tests') //note that this is androidTest instead of instrumentTest
}
}
dependencies {
androidTestCompile 'junit:junit:4.10'
//include the stable robolectric 2.3 library
androidTestCompile 'org.robolectric:robolectric:2.3'
androidTestCompile 'com.squareup:fest-android:1.0.+'
}
//only include files that are suffixed with Test.class and set the max heap size
androidTest {
include '**/*Test.class'
maxHeapSize = "2048m"
}
我还在src / tests / java中添加了一个空白清单文件和一个虚拟测试。在我之前的设置中,当我运行./gradlew test时,我的测试将运行并且id获得反馈。现在,当我运行相同的命令时,我的构建脚本会运行,但它根本不会接受我的测试。如果有人有任何参考教程或建议或快速解决方案将是伟大的。谢谢!
答案 0 :(得分:1)
是的,可以使用不同的插件。 robolectric支持的插件不支持此功能。
可在此处找到插件https://github.com/novoda/gradle-android-test-plugin 可在此处找到一个随时可用的示例https://github.com/nenick/android-gradle-template
答案 1 :(得分:1)
如果您想从单独的文件夹运行测试,但不一定是单独的模块,我使用Android Studio Unit Test Plugin和this gradle plugin取得了一些成功。