Swift 问题报告

CI

以 Xcode 运行时警告、断点、断言的形式报告应用程序和库代码中的问题,并以可测试的方式进行。

概述

该库提供了强大的工具,用于报告应用程序中的问题,并具有可自定义的粒度和严重程度。最基本的形式是在应用程序中的任何位置使用 reportIssue 函数来标记代码中的问题,例如您认为永远不应该执行的代码路径

guard let lastItem = items.last
else {
  reportIssue("'items' should never be empty.")
  return 
}

默认情况下,在 Xcode (模拟器和设备) 中运行应用程序时,这将触发一个不显眼的紫色运行时警告

A purple runtime warning in Xcode showing that an issue has been reported.

这提供了一种非常直观的方式来查看应用程序中何时发生问题,而无需停止应用程序的执行或中断您的工作流程。

reportIssue 工具也可以自定义,以允许其他报告问题的方式。它可以配置为在报告问题时触发断点以进行一些调试,或者如果您想真正停止执行,则可以配置为前提条件或致命错误。您可以创建自己的自定义问题报告器,将问题发送到 OSLog 或外部服务器。

此外,当在测试环境(包括 Swift 的原生 Testing 框架和 XCTest)中运行代码时,所有报告的问题都会变成测试失败。这有助于您获得问题代码路径未被执行的测试覆盖率,并使构建与库本身在同一目标中发布的库的测试工具成为可能。

A test failure in Xcode where an issue has been reported.

Issue Reporting 附带了许多报告器、自定义报告功能等等。要了解这些功能,请参阅 入门指南

案例研究

有许多流行的库正在使用 Issue Reporting。 仅举几例

还有其他案例研究要分享吗? 请告诉我们!

文档

完整文档可以在这里找到。

许可证

该库在 MIT 许可证下发布。 有关详细信息,请参阅 LICENSE