Android Studio找不到AndroidJUnit4.class +测试失败 [英] Android Studio can not find AndroidJUnit4.class + tests fail

查看:105
本文介绍了Android Studio找不到AndroidJUnit4.class +测试失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试开始这样的测试时:

When I try to start a test like this:

./gradlew app:connectedCheck

那么成绩输出将是:

deleteDir(/myapp/build/outputs/androidTest-results/connected) returned: true
deleteDir(/myapp/build/outputs/code-coverage/connected) returned: true
Starting 0 tests on Device - 4.4.2
Tests on Device - 4.4.2 failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'

com.android.builder.testing.ConnectedDevice > No tests found.[Device - 4.4.2] FAILED 
No tests found. This usually means that your test classes are not in the form that your test runner expects (e.g. don't inherit from TestCase or lack @Test annotations).
deleteDir(/myapp/build/reports/androidTests/connected) returned: true
:app:connectedAndroidTestDebug FAILED
:app:connectedAndroidTestDebug (Thread[Task worker Thread 3,5,main]) completed. Took 16.012 secs.

这里是我的build.gradle:

Heres my build.gradle:

androidTestCompile "junit:junit:${JUNIT_VERSION}"
androidTestCompile "org.objenesis:objenesis:${OBJENESIS_VERSION}"
androidTestCompile "org.hamcrest:hamcrest-core:${HAMCREST_VERSION}"
androidTestCompile "org.hamcrest:hamcrest-integration:${HAMCREST_VERSION}"
androidTestCompile "org.hamcrest:hamcrest-library:${HAMCREST_VERSION}"
androidTestCompile "com.android.support:support-v4:${SUPPORT_LIBRARY_VERSION}"
androidTestCompile "com.android.support:recyclerview-v7:${SUPPORT_LIBRARY_VERSION}"
androidTestCompile "org.mockito:mockito-core:${MOCKITO_VERSION}"
androidTestCompile "com.google.dexmaker:dexmaker:${DEXMAKER_VERSION}"
androidTestCompile("com.google.dexmaker:dexmaker-mockito:${DEXMAKER_VERSION}") {
    exclude group: 'org.mockito', module: 'mockito-core'
}

// Android test
androidTestCompile "com.android.support.test:runner:${ANDROID_TEST_VERSION}"
androidTestCompile "com.android.support.test:rules:${ANDROID_TEST_VERSION}"
androidTestCompile "com.android.support.test.uiautomator:uiautomator-v18:${UIAUTOMATOR_VERSION}"

// Espresso dependencies
androidTestCompile "com.android.support.test.espresso:espresso-core:${ESPRESSO_VERSION}"
androidTestCompile "com.android.support.test.espresso:espresso-contrib:${ESPRESSO_VERSION}"
androidTestCompile "com.android.support.test.espresso:espresso-intents:${ESPRESSO_VERSION}"

和gradle.properties的相关部分:

And relevant part of gradle.properties:

# Testing dependencies.
ANDROID_TEST_VERSION = 0.2
# TODO: Upgrade, as soon as https://github.com/crittercism/dexmaker/issues/16 is pulled
DEXMAKER_VERSION = 1.2
ESPRESSO_VERSION = 2.1
HAMCREST_VERSION = 1.3
# Do not use JUnit 4.12, until Powermock can be upgraded to >1.6
# See http://stackoverflow.com/a/26222732/375209 for details.
JUNIT_VERSION = 4.11
# Raising Mockito version will java.lang.AbstractMethodError: abstract method not implemented until dexmaker can be
# upgraded to 1.3 (https://github.com/crittercism/dexmaker/pull/14 & https://github.com/crittercism/dexmaker/issues/16)
# the new version.
# MOCKITO_VERSION = 1.10.19
MOCKITO_VERSION = 1.9.5
OBJENESIS_VERSION = 1.3
# This must be in sync with the Mockito version, as Mockito X only works with Powermock Y.
# See this file: https://code.google.com/p/powermock/wiki/MockitoUsage13
POWERMOCK_VERSION = 1.5.6
ROBOLECTRIC_VERSION = 2.4
UIAUTOMATOR_VERSION = 2.1.0

Android Studio也会失败,因为它无法解析JUnit运行器.

Android Studio fails as well because it can not resolve the JUnit runner.

要使事情正常运行,缺少开关的地方在哪里?

Where is the missing switch to get things working?

推荐答案

现在,发布了dexmaker 1.3和android测试支持Runner 0.3,这开始起作用:

Now that dexmaker 1.3 and android test support runner 0.3 are released, this started working:

androidTestCompile "junit:junit:${JUNIT_VERSION}"
androidTestCompile "com.android.support:support-v4:${SUPPORT_V4_VERSION}"
androidTestCompile "com.android.support:recyclerview-v7:${SUPPORT_LIBRARY_VERSION}"
androidTestCompile "org.mockito:mockito-core:${MOCKITO_VERSION}"
androidTestCompile "com.crittercism.dexmaker:dexmaker:${DEXMAKER_VERSION}"
androidTestCompile "com.crittercism.dexmaker:dexmaker-dx:${DEXMAKER_VERSION}"
androidTestCompile "com.crittercism.dexmaker:dexmaker-mockito:${DEXMAKER_VERSION}"

// Android test
androidTestCompile "com.android.support.test:runner:${ANDROID_TEST_VERSION}"
androidTestCompile "com.android.support.test:rules:${ANDROID_TEST_VERSION}"
androidTestCompile "com.android.support.test.uiautomator:uiautomator-v18:${UIAUTOMATOR_VERSION}"

// Espresso dependencies
androidTestCompile "com.android.support.test.espresso:espresso-core:${ESPRESSO_VERSION}"
androidTestCompile "com.android.support.test.espresso:espresso-contrib:${ESPRESSO_VERSION}"
androidTestCompile "com.android.support.test.espresso:espresso-intents:${ESPRESSO_VERSION}"

gradle.properties:

gradle.properties:

# Testing dependencies.
ANDROID_TEST_VERSION = 0.3
DEXMAKER_VERSION = 1.3
ESPRESSO_VERSION = 2.2
JUNIT_VERSION = 4.12
MOCKITO_VERSION = 1.10.19
POWERMOCK_VERSION = 1.6.2
ROBOLECTRIC_VERSION = 2.4
UIAUTOMATOR_VERSION = 2.1.1

这篇关于Android Studio找不到AndroidJUnit4.class +测试失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆