测试运行失败:由于'java.lang.ClassNotFoundException'导致仪表运行失败

Jam*_*vec 19 eclipse android android-testing

这是我第一次设置Android测试项目来测试Android项目.

我已经创建了一个非常基本的测试用例,我正试图运行,但是我没有运行.我得到了Test run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'.

我会更麻烦这一点,但是我没有得到任何更多的信息,例如它试图找到哪个类,等等.关于如何从错误中获取更多信息的任何想法?我应该看的任何常见区域,或者我可能需要配置的任何东西?

以下是控制台的信息:

[2013-04-16 13:21:49 - XyzProgramTest] Android Launch!
[2013-04-16 13:21:49 - XyzProgramTest] adb is running normally.
[2013-04-16 13:21:49 - XyzProgramTest] Performing android.test.InstrumentationTestRunner JUnit launch
[2013-04-16 13:21:49 - XyzProgramTest] Automatic Target Mode: launching new emulator with compatible AVD 'GalaxyNexusAPI_17'
[2013-04-16 13:21:49 - XyzProgramTest] Launching a new emulator with Virtual Device 'GalaxyNexusAPI_17'
[2013-04-16 13:21:53 - Emulator] extension WGL_ARB_make_current_read was not found
[2013-04-16 13:21:53 - Emulator] extension WGL_EXT_swap_control was not found
[2013-04-16 13:21:53 - Emulator] Failed to create pbuf surface for FB 0x3004
[2013-04-16 13:21:53 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2013-04-16 13:21:54 - XyzProgramTest] New emulator found: emulator-5554
[2013-04-16 13:21:54 - XyzProgramTest] Waiting for HOME ('android.process.acore') to be launched...
[2013-04-16 13:22:55 - XyzProgramTest] HOME is up on device 'emulator-5554'
[2013-04-16 13:22:55 - XyzProgramTest] Uploading XyzProgramTest.apk onto device 'emulator-5554'
[2013-04-16 13:22:55 - XyzProgramTest] Installing XyzProgramTest.apk...
[2013-04-16 13:23:57 - XyzProgramTest] Success!
[2013-04-16 13:23:57 - XyzProgramTest] Project dependency found, installing: XyzProgram
[2013-04-16 13:23:57 - XyzProgram] Uploading XyzProgram.apk onto device 'emulator-5554'
[2013-04-16 13:23:58 - XyzProgram] Installing XyzProgram.apk...
[2013-04-16 13:24:05 - XyzProgram] Success!
[2013-04-16 13:24:05 - XyzProgramTest] Launching instrumentation android.test.InstrumentationTestRunner on emulator-5554
[2013-04-16 13:24:07 - XyzProgramTest] Test run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'
Run Code Online (Sandbox Code Playgroud)

补充说明

在我的Android测试项目中,我创建了一个简单的测试,其中的软件包类似于我想要在我的Android项目中测试的类.所以像com.company.android.projectname.我在Android测试项目manifest文件的instrumentation部分中指定了这一点.

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.company.android.projectname" />
Run Code Online (Sandbox Code Playgroud)

当我改变它以匹配它时,我得到一个新的错误说 Test run failed: Unable to find instrumentation target package: com.company.android.projectname

我不是百分之百确定targetPackage应该是什么,如果我需要为每个我想要测试的软件包需要多个工具,等等.当我设置它com.company.android时,我就得到了java.lang.ClassNotFoundException.

Jer*_*Sha 16

我已经升级到androidx库,并开始出现此错误。

为了解决这个问题,在build.gradle中我更改了这一行:

testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
Run Code Online (Sandbox Code Playgroud)

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Run Code Online (Sandbox Code Playgroud)


43m*_*hew 6

仅供参考我遇到了这个并且必须添加

<uses-library android:name="android.test.runner"/>

在我的<application/>标签内


Jam*_*vec 5

找出我的问题,并发布答案用于文档目的......

问题的根源是两个不同的东西:

  1. 我做了一些重构,改变了我android.app.Application班级和活动的位置 .这使得我的主程序无法工作,因为我需要更新我的清单 android project.
  2. 在我的android项目中对我的清单进行更新之后,我不得不在my中进行一些更新,android test project以指向扩展类的更新位置android.app.Application.

在那之后,做了一些清洁和再次测试,事情很好.

  • 你能解释一下你在测试项目的第二步究竟发生了什么变化吗? (12认同)

rpa*_*abi 5

就我而言,我试图在Jelly Bean模拟器上运行测试。Android工具似乎不支持Jelly Bean。我可以对棒棒糖进行测试。

您可能也无法通过发布版本类型运行android测试。确保调试构建类型处于活动状态。


Far*_*tab 5

I got the same error because I forgot to add androidx.test:runner test dependency.

androidTestImplementation "androidx.test:runner:1.2.0"
Run Code Online (Sandbox Code Playgroud)