gpt4 book ai didi

swift - 从代码覆盖率中排除 SwiftUI 预览?

转载 作者:行者123 更新时间:2023-12-04 11:16:52 31 4
gpt4 key购买 nike

我无法将代码覆盖率提高到最低。 90% 因为 XCode 考虑了 PreviewProvider。
我该怎么办?删除所有 SwiftUI 预览?或者有没有一种方法可以排除一些带有“PreviewProvider”关键字等的行。
Xcode 12.0 版
Jenkins 为 CI
用于代码覆盖的 slather & cobertura
附带问题,没有可用于单元测试 SwiftUI 组件的官方测试套件。你们根本不测试它们,或者使用第三方库吗?我一直在使用 ViewInspector,但我不喜欢用它来跟踪组件的更新状态,我需要在实际代码库本身中包含测试代码。

最佳答案

以下是工作方法的描述(使用 Xcode 13/iOS 15 进行演示):

  • 为 UT
  • 添加显式测试(您想要的名称)配置

    demo1
  • 为测试配置添加条件宏 TESTING(您想要的名称)

  • demo2
  • 将预览提供程序置于类似
  • 的状态
    struct ContentView: View {
    var body: some View {
    Text("Hello, world!")
    .padding()
    }
    }

    #if !TESTING
    struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
    ContentView()
    }
    }
    #endif
  • 为 UT 模式设置测试配置

  • demo3
  • 运行 UT 并观察覆盖率

  • demo4

    关于swift - 从代码覆盖率中排除 SwiftUI 预览?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64604164/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com