我有一系列的UITests我想作为单独的测试运行,但我不想在每次测试之间重新启动应用程序.如何启动应用程序并使其保持打开状态,以便它不会在测试之间关闭和重新启动.
我尝试在init()中放置XCUIApplication().launch()但是出错了.
在您的setUp()
方法中,删除[[[XCUIApplication alloc] init] launch];
并将其放入您将要执行的第一个测试中.
例如,
如果你有测试:testUI(),testUIPart2(),testUIPart3()等,它按此顺序运行,放入[[[XCUIApplication alloc] init] launch];
testUI()的第一行,而不是其他地方.
为了改善@James Goe的答案-
为了避免所有这些重新启动,但保持运行单个测试的能力-不在乎测试的运行顺序,您可以:
class MyTests: XCTestCase { static var launched = false override func setUp() { if (!MyTests.launched) { app.launch() MyTests.launched = true }
(当然,既然您不重新启动应用程序,则必须更加关心状态,但这是另一回事了。它肯定更快。)