Robolectric测试未运行(Android)

问题描述:

我已成功安装Robolectric,但我的测试根本没有运行。没有错误,但也没有结果。我错过了什么?Robolectric测试未运行(Android)

运行./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); 
    } 
} 

我认为问题出在你的文件掩码上。您包括测试s .class,但您的班级被称为StartTest(注意缺失的s),因此不会包含在内。

+0

Thx交配为您的正确答案,这也是我的问题。 :) – 2015-01-03 12:52:57