综合考虑,建议采用前述的独立测试工程+独立包名的方式,并使用反射机制访问非public的变量和方法。

  步骤六、创建TestSuite或TestRunner(可选,适用于命令行执行方法)

  建议使用TestSuite以灵活配置测试用例的执行。下面是一种常用的TestSuite。如果运行MyTestSuite,则SnakeTest和TileViewTest中的测试用例将被执行。

  也可以使用TestRunner来控制运行哪些测试类。如果定义了TestRunner,则需要在测试代码的AndroidMenifest.xml增加相应的Instrumentation定义。

  下图是TestRunner的示例和相应的Instrumentation信息

  步骤七、执行测试。

  执行测试有两种方式:1、通过Eclipse菜单;2、通过命令行。

  首先介绍通过Eclipse菜单的方式。如果运行测试工程中所有的测试用例,可以在工程上点击右键,选择Run As -> OPhone JUnit Test。

  如果某个测试类,可以展开工程上,在该类上点击右键,选择Run As -> OPhone JUnit Test。

  如果单个测试用例(test方法),可以切换到某个测试类的Outline标签,选中一个test方法,点击右键,选择Run As -> OPhone JUnit Test。

  也可以使用命令行来执行测试用例。方法如下:

  假设SDK的路径已经加入到系统环境变量中,已创建名称为test的avd ,被测应用编译生成为Snake.apk,测试代码编译生成为SnakeUnitTest.apk,且两个apk保存在D盘。

  对于Windows系统,打开cmd窗口,执行emulator –avd test启动模拟器。

  执行adb install D:Snake.apk和adb install D:SnakeUnitTest.apk安装被测应用和测试包。如遇安装失败,可以先删掉模拟器里已经存在的应用,命令为adb uninstall

  执行测试命令。

  ● 运行所有测试:

  adb shell am instrument -w oms.unittest.snake /android.test.InstrumentationTestRunner

  ● 运行某个TestSuite或单个测试类:

  adb shell am instrument -e class oms.unittest.snake.MyTestSuite -w oms.unittest.snake/android.test.InstrumentationTestRunner

  或 adb shell am instrument -e class oms.unittest.snake.SnakeViewTest -w oms.unittest.snake/android.test.InstrumentationTestRunner