1

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

4

2 回答 2

7

对于 Xcode 4.5 及更新版本:

  1. 将“生成测试覆盖文件”构建设置设置为是。
  2. 将“仪器程序流程”构建设置设置为是。

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

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

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

于 2013-07-09T12:55:45.030 回答
-3

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

于 2013-02-22T07:46:42.440 回答