按照Diego Torres blog的一些说明操作后,我可以使用普通的Eclipse JUnit测试运行器来测试我的类,但是我也希望能够在模拟的android环境中运行我的单元测试。当我尝试在Android模拟器上运行Junit测试用例时,为什么会发生此错误?
现在这应该没有什么真正的区别,因为我正在从事的类是非常基本的数值或联网任务,但显然任何涉及UI或Android API特定功能的东西都只能在仿真器上进行测试。
我设置类型AndroidJUnitTest至极的新运行配置使用android.test.InstrumentationTestRunner,但是每当我火了测试,我在控制台中出现以下错误:
[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 [email protected]
正如你所期望,测试结束(没有在最终的“无法实例化仪器化ComponentInfo”消息后实际运行任何测试)
现在我的测试案例只包含Junit3和Junit4锅炉代码。测试只包含fail()调用,我只需要在这个阶段完成表明我可以在两种环境中执行基本的单元测试,以便开始测试驱动开发。
注: - 在Ubuntu 64位 运行Eclipse 3.5 - 仿真器设置为API级别2 - 我是新来的Android和Java两种,所以原谅我的基本问题
+1
我可能会误解,但我认为混合JUnit 3和JUnit 4通常被认为是一个坏主意。挑一个并坚持下去。 (我知道关于Java但不关于Android,所以我可能完全错误) –
2010-01-09 01:09:25
+0
我很确定Junit4测试运行者可以处理Junit3测试用例。当然,这不是可以接受的,但是现在我试图看看不兼容性是否与一个版本相关:不是。 –
2010-01-10 01:18:40