开发者社区> 问答> 正文

当我尝试在Android模拟器上运行Junit测试用例时,为什么会发生此错误?

按照Diego Torres博客上的一些说明进行操作后,我可以使用常规的Eclipse JUnit测试运行器测试我的类,但是我也希望能够在模拟的android环境中运行我的单元测试。

现在,这应该没有什么实质性的区别,因为我正在处理的类执行非常基本的数字或网络任务,但是显然任何涉及UI或Android API特定功能的内容都只能在模拟器上进行测试。

我使用android.test.InstrumentationTestRunner设置了类型为AndroidJUnitTest的新运行配置,但是每当启动测试时,控制台中都会出现以下错误:


[2010-01-09 00:45:23 - Pal1]Uploading Pal1.apk onto device 'emulator-5556'
[2010-01-09 00:45:23 - Pal1]Installing Pal1.apk...
[2010-01-09 00:45:25 - Pal1]Success!
[2010-01-09 00:45:25 - Pal1]Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5556
[2010-01-09 00:45:27 - Pal1]Test run failed: Unable to instantiate instrumentation ComponentInfo{org.stodge.traderpal/android.test.InstrumentationTestRunner}: java.lang.ClassNotFoundException: android.test.InstrumentationTestRunner in loader dalvik.system.PathClassLoader@43598c28

如您所料,测试结束(在最后的“无法实例化仪器ComponentInfo”消息之后,实际上没有运行任何测试。

现在,我的测试用例仅包含Junit3和Junit4锅炉代码。测试的实现只包含fail()调用。在此阶段,我要做的就是表明我可以在两种环境中执行基本的单元测试,从而可以开始测试驱动的开发。

注意:-在Ubuntu 64位上运行Eclipse 3.5-模拟器设置为API级别2-我是Android和Java的新手,所以请问我的基本问题

展开
收起
Puppet 2020-01-25 11:47:29 591 0
1 条回答
写回答
取消 提交回答
  • 我会忽略那个博客所说的话;似乎已经过时了。

    您不需要导入JUnit库或类似的东西;相应的类TestCase等已集成到Android SDK中。

    只需在您的项目中创建一个新类并进行扩展即可AndroidTestCase。然后,您可以右键单击要运行的测试用例(或测试用例包),然后选择“运行方式”→“ Android JUnit测试”。

    另外,我将使用高于2的API级别。 实际上,没有使用的设备在运行Android 1.1。您可以安全地切换到API级别3(Android 1.5),这是对以前版本的重大改进。

    2020-01-25 11:47:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载