如何运行android单元测试/功能测试?

如何运行android单元测试/功能测试?

问题描述:

继“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

发现在 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

对我来说,解决这个问题的一个方法就是用新建>其他> Android测试项目创建一个新的Android测试项目。然后,我创建了一个新的JUnit测试课程,其中包括新的JUnit测试用例,它扩展了AndroidTestCase。当你这样做时,我选择了包括setUp()tearDown()方法和另一个与我正在测试的类相关的测试方法。解决我的问题的方法是删除Eclipse在测试方法之前插入的关键字。

之后,项目启动运行测试方法。希望这可以帮助。

+0

我不得不使用junit3来加载测试。我正在使用junit4并给我这个相同的错误。 – Mido 2012-10-27 12:16:18