簡體   English   中英

從代碼覆蓋范圍中排除 SwiftUI 預覽?

[英]Exclude SwiftUI previews from code coverage?

我無法讓我的代碼覆蓋率達到最小值。 90% 因為 XCode 考慮了 PreviewProvider。

我應該怎么辦? 刪除所有 SwiftUI 預覽? 或者有沒有辦法可以排除一些帶有“PreviewProvider”關鍵字等的行。

Xcode ver 12.0 Jenkins 用於 CI slather & cobertura 用於代碼覆蓋

附帶問題,沒有可用於單元測試 SwiftUI 組件的官方測試套件。 你們根本不測試它們,還是使用第三方庫? 我一直在使用 ViewInspector,但我不喜歡用它來跟蹤組件的更新狀態,我需要在實際代碼庫本身中包含測試代碼。

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

  1. 為 UT 添加顯式測試(根據需要命名)配置

演示1

  1. 為測試配置添加條件宏 TESTING(您想要的名稱)

演示2

  1. 將預覽提供者置於如下狀態
struct ContentView: View {
    var body: some View {
        Text("Hello, world!")
            .padding()
    }
}

#if !TESTING
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif
  1. 為 UT 模式設置測試配置

演示3

  1. 運行 UT 並觀察覆蓋率

演示4

備份

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM