【问题标题】:Xcode 7.3.1 UITests Code Coverage always at 0%Xcode 7.3.1 UITests 代码覆盖率始终为 0%
【发布时间】:2016-11-15 00:01:03
【问题描述】:

除了主应用程序之外,我的项目中有两个单独的单元测试和 UI 测试目标。这两个目标有不同的方案,因此我可以在我的 CI 服务器上分别运行它们。我在这两个方案中都检查了“收集代码覆盖率”。最初,我通过使用“Cmd + U”分别构建和运行这两个方案来确保一切都在 XCode 上正常工作,并且这两个方案的覆盖率数据都正确显示....

在我的 Jenkins CI 中,我使用 fastlane 为这两个方案分别工作,单元测试方案运行良好并生成报告。但无论如何,UI 测试方案总是显示 0% 的覆盖率报告。我不知道做错了什么。

我在某处读到 UI 测试依赖于单元测试以实现代码覆盖率,这是真的吗?如果是真的,那么我应该在执行 UI 测试之前运行单元测试吗?

提前致谢。

【问题讨论】:

标签: ios xcode jenkins code-coverage xcode-ui-testing


【解决方案1】:

预览的答案有点错误,先生。即使是 Xcode 也显示了 UITests 的行覆盖率,所以 UITest 当然知道你的代码,当然它会调用你的代码来执行你的 UI。唯一的问题是 jenkins 遇到了问题,因为一个已知的 Apple 错误。收集覆盖数据调试格式有报告问题.. 看看错误的report

【讨论】:

    【解决方案2】:

    但 UI 测试方案总是显示 0% 的覆盖率

    UI 测试不涉及任何代码。它看不到你的代码。它从未听说过您的代码。它对您的代码一无所知。它与您的代码无关!它只是单击按钮并从外部读取您的应用程序的界面。实际上,它所能“看到”的只是屏幕

    【讨论】:

    • 感谢@matt 的快速回复。有什么方法可以让我获得 View Controllers 代码覆盖率吗? Xcode怎么能通过“Cmd+U”得到这个覆盖率报告
    • “有什么方法可以让我获得视图控制器代码覆盖率”当然,做一个单元测试。但是当您进行 UI 测试时,没有视图控制器之类的东西。 在 UI 测试中根本没有应用代码。你只是让我一遍又一遍地说。
    • 知道了。刚才看到 UI 测试实际上是在模拟器中安装“AppUITest”应用程序,它会启动我们的实际应用程序“App”。所以正如你所说,它只看到一个屏幕而不是实际代码。
    • 这根本不是真的。 uitests 覆盖的代码确实应该包含在总覆盖范围内。
    • 是的,它们在不同的应用程序中运行……但被完全覆盖。我在每个项目中都这样做
    猜你喜欢
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    相关资源
    最近更新 更多