Пока это работает хорошо, но когда я использую SwiftUI FocusState, я получаю разные выходные данные на CI по сравнению с моим локальным компьютером.
На моей локальной машине отображается синее кольцо фокусировки, но на CI — нет. Итак, на моей локальной машине закрытие onAppear выполняется, и цикл рендеринга завершится до создания снимка. В CI снимок, вероятно, делается до завершения цикла рендеринга или даже до выполнения закрытия onAppear.
Код: Выделить всё
struct MyView: View {
@FocusState var isFocused: Bool
@State var text: String = ""
var body: some View {
TextField("", text: $text)
.focused($isFocused)
.padding()
.overlay(
RoundedRectangle(cornerRadius: 12)
.stroke(isFocused ? Color.blue : Color.gray)
)
.onAppear {
isFocused = true
}
.padding()
}
}
Код: Выделить всё
import SnapshotTesting
import SwiftUI
import Testing
@testable import MyModule
@MainActor
@Suite(.snapshots)
struct MyViewTests {
@Test
func defaultState() {
let view = MyView()
assertSnapshot(of: view, as: .image)
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... mage-on-ci
Мобильная версия