1
我試圖安裝的Android儀器測試在我的咖啡庫的使用項目。問題是測試類編譯失敗(gradle task:compileDebugJavaWithJavac)。 我的搖籃配置文件:Android的25和咖啡2.2.2失敗儀器測試註釋失敗
buildscript {
repositories {
jcenter()
}
dependencies {
classpath group: 'com.android.tools.build', name: 'gradle', version: libVersions.android.androidTools
classpath group: 'org.greenrobot', name: 'greendao-gradle-plugin', version: libVersions.android.greendao
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion configuration.targetSdkVersion
buildToolsVersion configuration.buildToolsVersion
defaultConfig {
applicationId 'com.example.vbp.android'
minSdkVersion 23
targetSdkVersion 25
maxSdkVersion 25
versionCode buildVersionCode()
versionName buildVersionName()
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
java {
srcDirs += new File("src/main/java-gen")
}
}
androidTest.setRoot('src/androidTest')
}
}
apply plugin: 'org.greenrobot.greendao'
greendao {
schemaVersion 1
targetGenDir 'src/main/java-gen'
generateTests true
}
tasks.withType(Test) {
testLogging {
exceptionFormat "full"
events "started", "skipped", "passed", "failed"
showStandardStreams true
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile group: 'com.android.support', name: 'appcompat-v7', version: 25.3.1
compile group: 'org.greenrobot', name: 'greendao', version: 3.2.0
//Injection
compile "javax.annotation:jsr250-api:1.0"
compile "com.google.dagger:dagger:2.4"
annotationProcessor "com.google.dagger:dagger-compiler:2.4"
testCompile group: 'junit', name: 'junit', version: 4.12
testCompile group: 'org.robolectric', name: 'robolectric', version: 3.3.1
androidTestCompile "junit:junit:${libVersions.test.junit}"
androidTestCompile('com.android.support.test:runner:0.5', {
exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestCompile('com.android.support.test:rules:0.5', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// Optional -- Hamcrest library
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
// Optional -- UI testing with Espresso
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// Optional -- UI testing with UI Automator
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
}
依賴關係樹:
androidTestCompile - Classpath for compiling the androidTest sources.
+--- junit:junit:4.12
| \--- org.hamcrest:hamcrest-core:1.3
+--- com.android.support.test:runner:0.5
| +--- junit:junit:4.12 (*)
| \--- com.android.support.test:exposed-instrumentation-api-publish:0.5
+--- com.android.support.test:rules:0.5
| \--- com.android.support.test:runner:0.5 (*)
+--- org.hamcrest:hamcrest-library:1.3
| \--- org.hamcrest:hamcrest-core:1.3
+--- com.android.support.test.espresso:espresso-core:2.2.2
| +--- com.squareup:javawriter:2.1.1
| +--- com.android.support.test:rules:0.5 (*)
| +--- com.android.support.test:runner:0.5 (*)
| +--- javax.inject:javax.inject:1
| +--- org.hamcrest:hamcrest-library:1.3 (*)
| +--- com.android.support.test.espresso:espresso-idling-resource:2.2.2
| +--- org.hamcrest:hamcrest-integration:1.3
| | \--- org.hamcrest:hamcrest-library:1.3 (*)
| +--- com.google.code.findbugs:jsr305:2.0.1
| \--- javax.annotation:javax.annotation-api:1.2
\--- com.android.support.test.uiautomator:uiautomator-v18:2.1.2
故障測試類:
package com.example.vbp.android.activities.splash;
import android.support.test.filters.MediumTest;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static junit.framework.Assert.assertTrue;
@RunWith(AndroidJUnit4.class)
@MediumTest
public class SplashActivityTest {
@Test
public void assureActivityIsLaunching() {
assertTrue(true);
}
}
而且gradle這個編譯的結果:
Error:(3, 36) error: package android.support.test.filters does not exist
Error:(4, 35) error: package android.support.test.runner does not exist
Error:(5, 17) error: package org.junit does not exist
Error:(6, 24) error: package org.junit.runner does not exist
Error:(9, 2) error: cannot find symbol class RunWith
Error:(10, 2) error: cannot find symbol class MediumTest
Error:(13, 6) error: cannot find symbol class Test
Error:Execution failed for task ':VBPAndroid:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
REMARK :我的感覺是有一些問題的註釋,因爲compilator不抱怨Assert.assertTrue JUnit的進口,但只有(等等)org.junit.Test註解。
感謝您的任何想法,尖或可能的解決方案。