我正在使用UIAutomation来测试一个应用程序,我想知道我的代码覆盖率。但由于JavaScript没有预处理器,这意味着gcov和类似的不是一个选项。有没有人想出解决方案?有什么方法可以测试UIAutomation测试的代码覆盖率吗?
1
A
回答
7
有关的Xcode 4.5版本和更新:
- 将“生成测试覆盖率文件”生成设置设置为是。
- 将“Instrument Program Flow”构建设置设置为Yes。
这将在您每次在模拟器中运行应用程序并退出应用程序时生成代码覆盖文件。这两个步骤的详细解释可以在http://qualitycoding.org/xcode-code-coverage/的开头找到。
对于任何单元测试,将在您每次点击测试按钮并且测试完成时生成代码覆盖率文件。对于UIAutomation来说,这有点棘手。您必须确保应用程序在测试结束时退出。我发现最简单的方法是关闭多任务处理。在您的MyAppName-Info.plist文件中添加UIApplicationExitsOnSuspend并将此选项设置为'YES'。运行你的UI自动化测试,最后你可以通过在模拟器中手动按下主页按钮或使用UIATarget.localTarget()。deactivateAppForDuration()方法退出应用程序。请注意:如果您的应用程序具有任何依赖于deactivateAppForDuration()方法的UI自动化测试,则测试将在运行该命令后终止。
-3
代码覆盖率仅用于单元测试,也没有代码覆盖率UIAutomation因为没有办法知道有多少在屏幕上的元素已经被“感动”由UIAutoamtion
代码覆盖率告诉您测试过程中执行的应用程序中行数的百分比。您可以执行一个ui自动化测试,并像单元测试一样监视它 – ekcrisp 2015-01-09 19:28:22