Xcode:为什么我的启动参数在记录 UI 测试时不起作用?
Xcode: Why won't my launch arguments work while recording UI tests?
因为我计划在我的应用程序中设置 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 测试时使用启动参数?
感谢您的帮助。
这个答案是当你使用记录UI工具时,它不是使用testSetup而是直接运行应用程序。换句话说,你没有测试它,而是从一个普通的应用程序中提取测试信息运行。
一个简单的方法是在运行 方案中添加ui-测试。所以你可以看到你想要的黄色。
因为我计划在我的应用程序中设置 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 测试时使用启动参数?
感谢您的帮助。
这个答案是当你使用记录UI工具时,它不是使用testSetup而是直接运行应用程序。换句话说,你没有测试它,而是从一个普通的应用程序中提取测试信息运行。
一个简单的方法是在运行 方案中添加ui-测试。所以你可以看到你想要的黄色。