短时间玩转Android命令

移动开发 Android
在介绍Android命令之前,首先先让大家理解一下单元测试之间的层次,一组单元测试可以被组织成若干个TestSuite。

Android是基于Linux内核的软件平台和操作系统,早期由Google开发,下面介绍有关Android命令的问题,希望大家看完本文章后,能够找到自己想要的信息。

每个TestSuite包含若干 TestCase(某个继承android.jar的junit.framework.TestCase的类)。每个TestCase又包含若干个 Test(具体的test方法)。如果假设com.android.foo是你的测试代码的包的根。当执行以下命令时,会执行所有的TestCase的所有Test。测试的对象就是在Target Package中指定的包中的代码:

如果你想运行一个TestSuite,首先继承android.jar的junit.framework.TestSuite类,实现一个TestSuite(比如叫com.android.foo.MyTestSuite),然后执行以下命令执行此TestSuite其中的-e表示额外的参数,语法为-e [arg1] [value1] [arg2] [value2] …这里用到了class参数。如果仅仅想运行一个TestCase(比如叫com.android.foo.MyTestCase),则用以下命令:

然后,所有的测试结果会输出到控制台,并会做一系列统计,如标记为E的是Error,标记为F的是Failure,Success的测试则会标记为一个点。这和JUnit的语义一致。如果希望断点调试你的测试,只需要直接在代码上加上断点,然后将运行命令参数的-e后边附加上debug true后运行即可。

更加详细的内容可以看InstrumentationTestRunner的Javadoc。我希望Android能尽快有正式的文档来介绍这个内容。在 android.test.annotation包里定义了几个annotation,包括 @LargeTest,@MediumTest,@SmallTest,@Smoke,和@Suppress。

你可以根据自己的需要用这些 annotation来对自己的测试分类。在执行单元测试命令时,可以在-e参数后设置“size large”/ “size medium”/ “size small”来执行具有相应标记的测试。特别@Supperss可以取消被标记的Test的执行。


 

以上步骤中,在 Android命令自带的例子中,我发现它有两个manifest.xml。也就是说在步骤3中源代码和测试代码分别生成了两个不同的包。然后步骤4利用 adb install命令安装到了虚拟机上。

由于我没有找到Eclipse ADT有办法可以为一个只有Instrumentation,没有Activity的Application打包并安装,于是采用了略微不同的办法完成了这个工作。下文中将一一详细介绍整个过程。

以上步骤中,在Android命令自带的例子中,我发现它有两个manifest.xml。也就是说在步骤3中源代码和测试代码分别生成了两个不同的包。然后步骤4利用 adb install命令安装到了虚拟机上。

由于我没有找到Eclipse ADT有办法可以为一个只有Instrumentation。没有Activity的Application打包并安装,于是采用了略微不同的办法完成了这个工作。下文中将一一详细介绍整个过程。

【编辑推荐】

  1. 新一代的Android手机介绍 
  2. 深度剖析Android SDK版本介绍 
  3. 谷歌Android手机能否站稳中国 
  4. PythonAndroid深度剖析Android应用程序的四种构 造块 
  5. 探秘与众不同的Android系统? 
责任编辑:chenqingxiang 来源: dbanotes
相关推荐

2010-03-03 17:19:48

Android

2010-01-19 18:18:21

C++语言

2010-01-20 10:40:44

C++Test

2010-02-05 14:40:14

Android开源系统

2010-03-10 14:04:53

交换机故障

2010-02-24 13:56:27

Python编程语言

2010-04-29 14:15:15

Oracle Audi

2010-03-19 10:46:34

交换技术

2015-01-08 14:04:49

电信CDMA

2010-03-17 13:07:47

交换机故障

2010-03-16 10:32:23

配置交换机

2010-03-15 10:45:37

2009-11-25 15:31:40

VS2003 SDK

2013-01-13 10:01:18

2009-11-27 10:35:04

VS2003部署项目

2009-11-25 13:22:49

VS2003代码

2022-03-17 14:36:20

后门网络安全

2020-04-03 08:40:38

微软谷歌无代码

2017-12-02 07:33:30

苹果Face ID多用户

2017-08-02 08:52:19

点赞
收藏

51CTO技术栈公众号