我正在使用UIAutomation测试应用,我想找出我的代码覆盖率。但由于javascript没有预处理器,这意味着gcov和类似的不是一个选项。有没有人为此提出解决方案?
答案 0 :(得分:7)
对于Xcode 4.5及更高版本:
每次在模拟器中运行应用程序并退出应用程序时,都会生成代码覆盖率文件。可以在http://qualitycoding.org/xcode-code-coverage/的开头找到这两个步骤的详细说明。
对于任何单元测试,每次点击测试按钮并完成测试时,都会生成代码覆盖率文件。对于UIAutomation来说,它有点棘手。您必须确保在测试结束时退出应用程序。我发现这样做的最简单方法是关闭多任务处理。在MyAppName-Info.plist文件中添加UIApplicationExitsOnSuspend,并将此选项设置为“YES”。运行UI自动化测试,在结束时,您可以通过手动按下模拟器中的主页按钮或使用UIATarget.localTarget()。deactivateAppForDuration()方法退出应用程序。
注意:如果您的应用程序具有任何依赖于deactivateAppForDuration()方法的UI自动化测试,则测试将在运行命令时终止。
答案 1 :(得分:-3)
代码覆盖率仅用于单元测试,UIAutomation没有代码覆盖率,因为UIAutomation无法判断屏幕上有多少元素已被“触及”