Android Studio找不到AndroidJUnit4.class + 测试失败

3

当我尝试启动像这样的测试:

./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文件:
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的相关部分:

# 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 https://dev59.com/jF8e5IYBdhLWcg3wAWjs#26222732 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

由于无法解决JUnit运行器,因此Android Studio也失败了。

如何找到缺失的开关来使事情正常工作?

1个回答

0

现在dexmaker 1.3和android test support runner 0.3已经发布,这个问题得到了解决:

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:

# 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接