避免在 XCTest UI 测试中还原应用状态



我正在为基于文档的macOS应用程序编写UI测试。

该测试通过单击初始屏幕窗口中的按钮(非常类似于"欢迎使用 Xcode"窗口(打开模板文档。这适用于第一次测试运行。但随后的启动被状态恢复所挫败,因为之前打开的文档覆盖了初始屏幕窗口。

如何在运行 Xcode UI 测试时禁用状态恢复?

我已经在我的应用程序目标中禁用了状态还原("启动应用程序而不恢复状态"(,它工作正常。但这不会延续到测试目标,即使选中了"使用运行操作的参数和环境变量"。

我还尝试在测试结束时关闭以前打开的文档,但是当我在保存对话框中单击"删除副本"时,"记录UI测试"不会记录任何内容。

这在测试的setUp函数中起到了作用:

let app = XCUIApplication()
app.launchArguments.append(contentsOf: ["-ApplePersistenceIgnoreState", "YES"])
app.launch()

您也可以直接在命令行上附加等效参数,例如:

/Applications/Example.app/Contents/MacOS/example -ApplePersistenceIgnoreState YES

最新更新