2010-08-06 161 views
3

繼「Hello, World」和「Hello, Testing」教程後,我創建了一個使用Eclipse創建的Android應用程序以及相應的Android測試項目。如何運行android單元測試/功能測試?

測試運行正常......一次。之後,爲了讓我再次運行測試,我必須關閉仿真器。

如果我沒有關閉模擬器,那麼Eclipse控制檯會卡在「在設備模擬器-5554上安裝instrumentation android.test.InstrumentationTestRunner」......之後沒有任何反應。

下面是我的程序在第二次運行的輸出:

[HelloTest] ------------------------------ 
[HelloTest] Android Launch! 
[HelloTest] adb is running normally. 
[HelloTest] Performing android.test.InstrumentationTestRunner JUnit launch 
[HelloTest] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'FakePhone' 
[HelloTest] Uploading HelloTest.apk onto device 'emulator-5554' 
[HelloTest] Installing HelloTest.apk... 
[HelloTest] Success! 
[HelloTest] Project dependency found, installing: Hello 
[Hello] Application already deployed. No need to reinstall. 
[HelloTest] Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554 

正如你可以看到它停在「啓動儀器」 ......我也運行「亞行logcat」,並沒有看到什麼有趣的事。

我被告知退出模擬器中的待測應用程序以便再次運行測試。不幸的是,模擬器沒有拉起應用程序(它處於正常的「鎖定」位置,當解鎖時會顯示主屏幕),即使我拉起它然後退出,它似乎不讓我跑我的再次測試。

所有示例視頻和教程都停在第一次運行測試。我還沒有看到有人在第二次進行測試!

+0

您使用的是Eclipse嗎? – iandisme 2010-08-13 19:04:51

+0

是的,我正在使用Eclipse – inanutshellus 2010-08-15 01:20:02

回答

1

發現在 Dev Guide

「當你更新你的代碼,您定期包,並在模擬器上進行安裝。該模擬器保留的應用和跨重啓其狀態的數據,在用戶數據的磁盤分區。爲了保證應用程序在更新時運行正常,您可能需要刪除仿真器的用戶數據分區。爲此,請使用-wipe-data選項啓動仿真器。有關用戶數據分區和其他仿真器存儲的更多信息,請參閱使用模擬器磁盤映像。「

+0

這不適合我。也許我做錯了。對你起作用嗎..? – inanutshellus 2010-08-12 03:20:09

+0

它爲我工作是的。在更新應用程序之前,您是否正在擦除數據? – Bactos 2010-08-14 13:01:49

+0

我使用了啓動模擬器時提到的標誌,並嘗試像平常一樣通過eclipse運行測試。請記住,我甚至沒有更改應用程序或測試,我只是想在不關閉模擬器的情況下再次運行它們,並等待兩分鐘再試。只需自行重新部署我的應用,然後點擊即可更快更輕鬆地完成。 – inanutshellus 2010-08-14 18:53:51

3

對我來說,解決這個問題的一個方法就是用新建>其他> Android測試項目創建一個新的Android測試項目。然後,我創建了一個新的JUnit測試課程,其中包括新的JUnit測試用例,它擴展了AndroidTestCase。當你這樣做時,我選擇了包括setUp()tearDown()方法和另一個與我正在測試的類相關的測試方法。解決我的問題的方法是刪除Eclipse在測試方法之前插入的關鍵字。

之後,項目啓動運行測試方法。希望這可以幫助。

+0

我不得不使用junit3來加載測試。我正在使用junit4並給我這個相同的錯誤。 – Mido 2012-10-27 12:16:18