Swift中用于区分UITest运行状态的条件判断语句如何编写
Swift判断UITest运行状态的条件实现
推荐方案:自定义环境变量判断
你需要先在UITest侧的启动配置里注入标记,再在主项目中做判断,可控性更高,还可以区分UITest和UnitTest环境。
- 首先在UITest目标的测试用例
setUp方法中添加启动环境变量:
override func setUpWithError() throws { continueAfterFailure = false let app = XCUIApplication() // 注入UITest运行标记 app.launchEnvironment["IS_UI_TEST_RUNNING"] = "YES" app.launch() }
- 主项目中对应的条件判断直接填写如下内容即可:
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
相关产品推荐
相关产品推荐

