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

时间:2010-08-06 21:20:35

标签: android unit-testing

在“Hello, World”和“Hello, Testing”教程之后,我创建了一个用Eclipse创建的android应用程序,以及相应的Android Test Project。

测试运行良好......一次。之后,为了让我再次运行测试,我必须关闭模拟器。

如果我没有关闭模拟器,Eclipse控制台就会卡在“在设备模拟器-5554上安装检测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

正如你所看到的那样,它停止在“启动仪器”......我也运行“adb logcat”而没有看到任何有趣的东西。

我被告知要在模拟器中退出测试中的应用程序,以便再次运行测试。不幸的是,模拟器没有拉起应用程序(它处于正常的“锁定”位置,当解锁时显示主屏幕),即使我拉起它然后退出,它似乎也不让我运行我的再次测试。

所有示例视频和教程都在第一次测试时停止。我还没有看到任何人在第二次进行测试!

2 个答案:

答案 0 :(得分:3)

为我解决此问题的原因是使用新建>创建新的Android测试项目其他> Android测试项目。然后我用 New>创建了一个新的JUnit测试类。扩展 AndroidTestCase 的JUnit测试用例。当你这样做时,我选择包含 setUp() tearDown()方法以及与我正在测试的类相关的另一个测试方法。解决我的问题的方法是删除Eclipse在测试方法之前插入的 @Test 关键字。

之后项目启动了测试方法。希望这会有所帮助。

答案 1 :(得分:1)

Dev Guide

中找到

“在更新代码时,您会定期将其打包并安装在模拟器上。模拟器会在重新启动时保留应用程序及其状态数据,并保存在用户数据磁盘分区中。确保应用程序在更新时正常运行它可能需要删除模拟器的用户数据分区。为此,请使用-wipe-data选项启动模拟器。有关用户数据分区和其他模拟器存储的详细信息,请参阅使用模拟器磁盘映像。 “