You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中用于区分UITest运行状态的条件判断语句如何编写

Swift判断UITest运行状态的条件实现

推荐方案:自定义环境变量判断

你需要先在UITest侧的启动配置里注入标记,再在主项目中做判断,可控性更高,还可以区分UITest和UnitTest环境。

  1. 首先在UITest目标的测试用例setUp方法中添加启动环境变量:
override func setUpWithError() throws {
    continueAfterFailure = false
    let app = XCUIApplication()
    // 注入UITest运行标记
    app.launchEnvironment["IS_UI_TEST_RUNNING"] = "YES"
    app.launch()
}
  1. 主项目中对应的条件判断直接填写如下内容即可:
if ProcessInfo.processInfo.environment["IS_UI_TEST_RUNNING"] != nil {
    // UITest运行时执行的代码
} else {
    // 正常运行时执行的代码
}

轻量方案:无前置配置的通用判断

如果不需要区分UITest和UnitTest,也不想额外配置环境变量,可以直接使用如下判断:

if NSClassFromString("XCTestCase") != nil {
    // 测试环境(包含UITest、UnitTest)运行时执行的代码
} else {
    // 正常运行时执行的代码
}

提示:如果需要严格只匹配UITest,可以在上面的判断条件中追加ProcessInfo.processInfo.arguments.contains("-XCUIApplication")即可。

内容的提问来源于stack exchange,提问作者rajat shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:06:02