我是SwiftUI和XCode的新手,并试图通过TDD书籍学习它。到目前为止所有的测试都是非UI测试;它们只是逻辑单元测试在运行非UI单元测试时,有没有什么方法可以禁用模拟器?我想没有模拟器它会运行得稍微快一点,而且每次运行单元测试时都会弹出模拟器,这有点烦人。我试图编辑我的测试方案,其中只包括单元测试,而不是UI测试;但每次都会弹出模拟器。我用的是XCode 12.5.1。
aurhwmvo1#
在运行非UI单元测试时,有没有什么方法可以禁用模拟器?我的做法是将所有业务逻辑代码及其单元测试放入一个框架中。Xcode测试一个框架而不加载app目标,因此不涉及模拟器。
jtw3ybtb2#
这并不能实现你的“禁用模拟器”的目标,但是如果你的意图是不执行任何超过App的代码,那么它就实现了。
App
@main struct MyApp: App { var body: some Scene { WindowGroup { let isUnitTest = ProcessInfo.processInfo.environment["XCTestBundlePath"] != nil if isUnitTest { Text("Unit Test") } else { ContentView() } } } }
2条答案
按热度按时间aurhwmvo1#
在运行非UI单元测试时,有没有什么方法可以禁用模拟器?
我的做法是将所有业务逻辑代码及其单元测试放入一个框架中。Xcode测试一个框架而不加载app目标,因此不涉及模拟器。
jtw3ybtb2#
这并不能实现你的“禁用模拟器”的目标,但是如果你的意图是不执行任何超过
App
的代码,那么它就实现了。