Xcode:为什么我的启动参数在记录 UI 测试时不起作用?

Rob*_*Rob 1 xcode ios xcode-ui-testing

当我计划在我的应用程序中设置 UI 测试,并使用启动参数来模拟一些数据时,我在构建一个简单的测试项目时意识到了一些事情:

在应用程序目标中:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let uiTesting = ProcessInfo.processInfo.arguments.contains("ui-testing")
        view.backgroundColor = uiTesting ? .yellow : .white
    }
}
Run Code Online (Sandbox Code Playgroud)

在 UI 测试目标中:

class UITestWithLaunchArgumentsProjectUITests: XCTestCase {

    override func setUp() {
        let app = XCUIApplication()
        app.launchArguments.append("ui-testing")
        app.launch()
    }


    func testExample() {
        sleep(20)
    }
}
Run Code Online (Sandbox Code Playgroud)

多亏了这一点,我意识到,如果我运行,testExample()背景颜色会按预期变成黄色。但是,当我使用记录UI测试工具时,却没有。

有谁知道为什么,以及最终如何在记录 UI 测试时使用启动参数?

感谢您的帮助。

E.C*_*oms 6

这个答案是当你使用记录UI工具时,它不使用testSetup而是直接运行应用程序。换句话说,您还没有测试它,而是从正常的应用程序运行中提取测试信息。

一个简单的方法是在运行方案中添加 ui-testing。所以你可以看到你想要的黄色。

在此输入图像描述