【问题标题】:Why is a closing brace showing no code coverage?为什么右括号显示没有代码覆盖?
【发布时间】:2016-01-05 22:07:06
【问题描述】:

我有一个 Swift 函数,Xcode 显示它的代码覆盖率为 0。该行是一个右大括号(下面以红色突出显示)。

这是 Xcode 中的错误吗?如果不是,我需要达到什么条件才能运行该行?我以为我通过这种方法涵盖了所有路径。

【问题讨论】:

  • 有没有办法解决这个 Xcode 问题?
  • @AdamJohns 我最近没有看到它发生过——但我有一段时间没有研究这个代码了。你还在用 Xcode 8 看到它吗?
  • 在 Xcode10b6 中仍然可以看到。报告为 rdar://43697191 (openradar.appspot.com/radar?id=4958257156194304)

标签: xcode unit-testing xcode7 code-coverage


【解决方案1】:

很确定这是 Xcode 代码覆盖的错误(功能?)。问题归结为 return 语句不允许它下降到空的 else 语句,因此表明代码没有执行。 return 语句对它们正在执行的计算代码行数的操作造成了麻烦。

在您的 try/catch 块的实例中,您实际上没有太多选择来防止空执行。

作为一个实验,删除 return 语句并找到一种更好的方法来捕获 writeToURL 语句,这样它就不会在 error/catch 语句中执行。这可能会为您提供该行的干净代码覆盖率。

【讨论】:

    【解决方案2】:

    xcode 报告包括对结束括号的测量,这通常是不需要的。在配置中您无法解决此问题(据我所知)。

    (FD 我在 Codecov 工作)您可以使用 Codecov,这是一个托管解决方案,它会自动删除这些额外的行。在https://github.com/codecov/example-xcode 了解更多信息。谢谢:)

    【讨论】:

    • 但是为什么不是到处都发生这种情况呢?我的大部分类和函数都 100% 覆盖
    • 很好的问题,很遗憾我没有答案。
    • 我也很好奇这个。
    猜你喜欢
    • 2012-02-08
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多