有没有办法测试UIAutomation测试的代码覆盖率?

gur*_*ooj 1 code-coverage ios ios-ui-automation

我正在使用UIAutomation测试应用程序,我想找出我的代码覆盖率.但由于javascript没有预处理器,这意味着gcov和类似的不是一个选项.有没有人为此提出解决方案?

小智 7

对于Xcode 4.5及更新版本:

  1. 将"生成测试覆盖率文件"构建设置设置为"是".
  2. 将"Instrument Program Flow"构建设置设置为Yes.

每次在模拟器中运行应用程序并退出应用程序时,这将生成代码覆盖文件.可以在http://qualitycoding.org/xcode-code-coverage/的开头找到这两个步骤的详细说明.

对于任何单元测试,每次按下测试按钮并完成测试时,都会生成代码覆盖率文件.对于UIAutomation来说,它有点棘手.您必须确保在测试结束时退出应用程序.我发现这样做的最简单方法是关闭多任务处理.在MyAppName-Info.plist文件中添加UIApplicationExitsOnSuspend,并将此选项设置为"YES".运行UI自动化测试,在结束时,您可以通过手动按下模拟器中的主页按钮或使用UIATarget.localTarget().deactivateAppForDuration()方法退出应用程序.

注意:如果您的应用程序具有依赖于deactivateAppForDuration()方法的任何UI自动化测试,则测试将在运行命令时终止.