在SwiftUI单元测试中禁用模拟器

z3yyvxxp  于 2023-05-05  发布在  Swift
关注(0)|答案(2)|浏览(188)

我是SwiftUI和XCode的新手,并试图通过TDD书籍学习它。到目前为止所有的测试都是非UI测试;它们只是逻辑单元测试在运行非UI单元测试时,有没有什么方法可以禁用模拟器?我想没有模拟器它会运行得稍微快一点,而且每次运行单元测试时都会弹出模拟器,这有点烦人。我试图编辑我的测试方案,其中只包括单元测试,而不是UI测试;但每次都会弹出模拟器。我用的是XCode 12.5.1。

aurhwmvo

aurhwmvo1#

在运行非UI单元测试时,有没有什么方法可以禁用模拟器?
我的做法是将所有业务逻辑代码及其单元测试放入一个框架中。Xcode测试一个框架而不加载app目标,因此不涉及模拟器。

jtw3ybtb

jtw3ybtb2#

这并不能实现你的“禁用模拟器”的目标,但是如果你的意图是不执行任何超过App的代码,那么它就实现了。

@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            let isUnitTest = ProcessInfo.processInfo.environment["XCTestBundlePath"] != nil
            if isUnitTest {
                Text("Unit Test")
            } else {
                ContentView()
            }
        }
    }
}

相关问题