SwiftUI非UI单元测试运行时如何禁用模拟器弹出?
纯逻辑单元测试禁用Xcode模拟器操作指南
适配版本:Xcode 12.5.1
操作步骤:
- 切换运行目标:点击Xcode顶部工具栏的运行目标下拉框,选择我的 Mac 作为运行目标,不要选择任意iOS模拟器/真机设备。如果是iOS项目,需要先确认单元测试Target的「Base SDK」配置为
MacOS,「Build Active Architecture Only」设置为Yes - 调整单元测试Target配置:打开项目设置页,选中对应的单元测试Target,进入「Build Settings」标签:
- 若你的单元测试完全不依赖宿主App的业务代码,找到
Test Host配置项直接清空值 - 若单元测试需要依赖宿主App代码,需要先给宿主App开启Mac Catalyst支持,确保App可在Mac端运行
- 若你的单元测试完全不依赖宿主App的业务代码,找到
- 运行测试:使用快捷键
Command + U触发测试,此时测试会直接在本地Mac环境执行,不会弹出iOS模拟器,运行速度比模拟器环境平均提升40%左右
注意事项
如果你的逻辑单元测试用到了iOS独有系统API(比如UIKit下的部分UI相关接口、CoreLocation iOS端独有能力等),需要给对应代码添加平台判断,否则会在Mac环境下编译报错,这类测试暂时只能在iOS模拟器环境运行
内容的提问来源于stack exchange,提问作者dragonfly02
相关产品推荐
相关产品推荐

