按照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兩種,所以原諒我的基本問題
我可能會誤解,但我認爲混合JUnit 3和JUnit 4通常被認爲是一個壞主意。挑一個並堅持下去。 (我知道關於Java但不關於Android,所以我可能完全錯誤) – MatrixFrog 2010-01-09 01:09:25
我很確定Junit4測試運行者可以處理Junit3測試用例。當然,這不是可以接受的,但是現在我試圖看看不兼容性是否與一個版本相關:不是。 – 2010-01-10 01:18:40