12.3合并代码覆盖率文件
(1)新建一个Runner和Runner2,然后在这个Runner中添加还未添加的用例。
新建一个Suite,添加case如下。
packagecom.example.todolist.test.testsuites; importjunit.framework.TestSuite; importcom.example.todolist.test.testcases.addtodolist.NewToDo_1; importcom.example.todolist.test.testcases.edittodolist.EditDoListItem_1; importcom.example.todolist.test.testcases.logout.Logout_1; publicclassOtherSuite{ publicstaticTestSuitegetTestSuite(){ TestSuitesuite=newTestSuite(); suite.addTestSuite(NewToDo_1.class); suite.addTestSuite(EditDoListItem_1.class); suite.addTestSuite(Logout_1.class); returnsuite; } } |
(2)新建Runner2,将OtherSuite添加到这个Runner中,编写Runner2的代码如下。
packagecom.example.todolist.test.runners; importjunit.framework.TestSuite; importcom.example.todolist.test.testcases.LatestTest; importcom.example.todolist.test.testsuites.OtherSuite; publicclassRunner2extendsCommonRunner{ @Override publicTestSuitegetAllTests(){ //TODOAuto-generatedmethodstub TestSuitesuite=newTestSuite(); suite.addTest(OtherSuite.getTestSuite()); suite.addTestSuite(LatestTest.class); if(isNeedRegenerate){ suite=reGenerateTestSuiteWhenCrash(getCaseNameList(suite)); } returnsuite; } } |
(3)在AndroidManifest.xml添加这个Runner的声明。
<instrumentation
android:name="com.example.todolist.test.runners.Runner2"
android:targetPackage="com.example.todolist"/>
(4)再次执行antcleanemmadebug,让APK是最新的版本,运行第二个Runner,将其产生的覆盖率文件命名为coverage2.ec,命令如下。
adbshellaminstrument-ecoveragetrue-ecoverageFile/mnt/sdcard/coverage2.ec-wcom.example.todolist.test/com.example.todolist.test.runners.Runner2
在终端的执行过程如图12.11所示。
图12.11
执行完后,同样将这个文件pull到测试项目根目录下,pull方法与上面介绍的相同,这里就不重复介绍了,参照图12.12所示即可。
通过如下命令实现mergeconverage.ec和coverage2.ec。
图12.12
java-cpemma.jaremmamerge-incoverage.ec,coverage2.ec-outcoverage_all.ec
在终端的执行过程如图12.13所示。
图12.13
通过如下命令生成总的覆盖率信息的HTMLreport。
java-cpemma.jaremmareport-rhtml-incoverage.em,coverage_all.ec-Dreport.html.out.file=./coverage_all.html
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。