swift - 从代码覆盖范围中排除 SwiftUI 预览?
问题描述
我无法让我的代码覆盖率达到最小值。90% 因为 XCode 考虑了 PreviewProvider。
我应该怎么办?删除所有 SwiftUI 预览?或者有没有办法可以排除一些带有“PreviewProvider”关键字等的行。
Xcode ver 12.0 Jenkins 用于 CI slather & cobertura 用于代码覆盖
附带问题,没有可用于单元测试 SwiftUI 组件的官方测试套件。你们根本不测试它们,还是使用第三方库?我一直在使用 ViewInspector,但我不喜欢用它来跟踪组件的更新状态,我需要在实际代码库本身中包含测试代码。
解决方案
Here is a description of working approach (demo with Xcode 13 / iOS 15):
- Add explicit Testing (name as you want) configuration for UT
- Add conditional macro TESTING (name as you want) for Testing configuration
- Put preview provider into condition like
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.padding()
}
}
#if !TESTING
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
- Set Testing configuration for UT schema
- Run UT and observe coverage
推荐阅读
- php - Apparmor:php脚本需要对“/”进行rw访问
- javascript - 如何在一个标签中将不同的锚点放在“data-url”属性上?
- javascript - jquery返回空,除非选择器前面有元素
- python - 打开并读取目录中的所有文本文件并使用正则表达式 python 过滤它们
- python-2.7 - 无法为 Python 2.7.14 安装机器人框架 HttpLibrary.HTTP 库
- arrays - MIPS - 无法找到数组中的最小值
- javascript - 我们如何才能在 Ag-grid Tree 数据中显示重复项?
- elasticsearch - Elasticsearch:从查询匹配中计算文档
- android - ResourceType 对于资源条目索引超出类型 entryCount
- reactjs - 如何使用 Material-UI 在 React JS 中对表格中不是数字或文本的项目进行排序?