我已经成功安装了Robolectric,但我的测试根本没有运行。没有错误,也没有结果。我错过了什么?
运行./gradlew测试后,没有测试报告,但是测试类是正确生成的
我的build.gradle:
buildscript {
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/repo' }
}
dependencies {
...
classpath 'io.fabric.tools:gradle:1.+'
classpath 'org.robolectric:robolectric-gradle-plugin:0.11.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'idea'
apply plugin: 'hugo'
apply plugin: 'android'
apply plugin: 'robolectric'
idea {
module {
downloadJavadoc = true
downloadSources = true
testOutputDir = file('build/test-classes/debug')
}
}
repositories {
mavenCentral()
maven { url 'https://repo.commonsware.com.s3.amazonaws.com' }
flatDir name: 'localRepository', dirs: 'libs-aar'
maven { url 'https://maven.fabric.io/repo' }
}
dependencies {
repositories {
mavenCentral()
}
...
// Espresso
androidTestCompile files('lib/espresso-1.1.jar', 'lib/testrunner-1.1.jar', 'lib/testrunner-runtime-1.1.jar')
androidTestCompile 'com.google.guava:guava:14.0.1'
androidTestCompile 'com.squareup.dagger:dagger:1.1.0'
androidTestCompile 'org.hamcrest:hamcrest-integration:1.1'
androidTestCompile 'org.hamcrest:hamcrest-core:1.1'
androidTestCompile 'org.hamcrest:hamcrest-library:1.1'
androidTestCompile('junit:junit:4.11') {
exclude module: 'hamcrest-core'
}
androidTestCompile('org.robolectric:robolectric:2.3') {
exclude module: 'classworlds'
exclude module: 'commons-logging'
exclude module: 'httpclient'
exclude module: 'maven-artifact'
exclude module: 'maven-artifact-manager'
exclude module: 'maven-error-diagnostics'
exclude module: 'maven-model'
exclude module: 'maven-project'
exclude module: 'maven-settings'
exclude module: 'plexus-container-default'
exclude module: 'plexus-interpolation'
exclude module: 'plexus-utils'
exclude module: 'wagon-file'
exclude module: 'wagon-http-lightweight'
exclude module: 'wagon-provider-api'
}
androidTestCompile 'com.squareup:fest-android:1.0.+'
}
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
useOldManifestMerger true
defaultConfig {
minSdkVersion 11
targetSdkVersion 19
buildConfigField "String", "GIT_SHA", "\"${gitSha()}\""
testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
// buildConfigField "String", "BUILD_TIME", buildTime()
}
...
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/com', 'src/se', 'src/viewpagerindicator' , 'src-gen']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
...
androidTest {
setRoot('src/androidTest')
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
}
...
robolectric {
include '**/*Tests.class'
exclude '**/espresso/**/*.class'
}
我的测试:
@RunWith(RobolectricTestRunner.class)
public class StartTest {
@Test
public void testSomething() throws Exception {
//Activity activity = Robolectric.buildActivity(DeckardActivity.class).create().get();
assertTrue(true);
}
}
答案 0 :(得分:2)
我认为问题在于您的文件掩码。您正在包含测试 s .class,但您的类名为StartTest(请注意缺少的 s ),因此不会包含它。