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

时间:2013-02-21 22:58:46

标签: ios code-coverage ios-ui-automation

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

2 个答案:

答案 0 :(得分:7)

对于Xcode 4.5及更高版本:

  1. 将“生成测试覆盖率文件”构建设置设置为“是”。
  2. 将“Instrument Program Flow”构建设置设置为Yes。
  3. 每次在模拟器中运行应用程序并退出应用程序时,都会生成代码覆盖率文件。可以在http://qualitycoding.org/xcode-code-coverage/的开头找到这两个步骤的详细说明。

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

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

答案 1 :(得分:-3)

代码覆盖率仅用于单元测试,UIAutomation没有代码覆盖率,因为UIAutomation无法判断屏幕上有多少元素已被“触及”