gpt4 book ai didi

Android 25 和 Espresso 2.2.2 未能通过仪器测试注释失败

转载 作者:行者123 更新时间:2023-12-03 04:28:20 26 4
gpt4 key购买 nike

我正在尝试使用 espresso 库在我的项目中设置 android 仪器测试。问题是测试类编译失败(gradle 任务:compileDebugJavaWithJavac)。
我的 Gradle 配置文件:

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.

备注:我的感觉是注释存在一些问题,因为编译器不会提示 Assert.assertTrue junit 导入,而只会提示(其中包括)org.junit.Test 注释。

感谢您提供任何想法、提示或解决方案。

最佳答案

好的,我设法找到了原因并解决了它。事实上,这是 GreenDao 的问题 - 将标志 generateTests 设置为 TRUE 会导致依赖性问题。
我只是通过升级到新版本的 GreenDao (3.2.0 -> 3.2.2) 来修复它。

关于Android 25 和 Espresso 2.2.2 未能通过仪器测试注释失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com