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

时间:2018-10-17 14:26:59

标签: ios xcode 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
    }
}

在UI测试目标中:

class UITestWithLaunchArgumentsProjectUITests: XCTestCase {

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


    func testExample() {
        sleep(20)
    }
}

由于这一点,我意识到,如果运行testExample(),背景颜色将变为预期的黄色。但是,当我使用记录UI测试工具时,没有。

有人知道为什么吗,并且最终在记录UI测试时还如何使用启动参数?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

一种简单的方法是在运行方案中添加ui测试。这样您就可以根据需要看到黄色。

enter image description here