如何在Xcode中的UITests之间保持应用程序打开

Rob*_*mid 7 xcode-ui-testing

我有一系列的UITests我想作为单独的测试运行,但我不想在每次测试之间重新启动应用程序.如何启动应用程序并使其保持打开状态,以便它不会在测试之间关闭和重新启动.

我尝试在init()中放置XCUIApplication().launch()但是出错了.

Jam*_*Goe 6

在您的setUp()方法中,删除[[[XCUIApplication alloc] init] launch];并将其放入您将要执行的第一个测试中.

例如,

如果你有测试:testUI(),testUIPart2(),testUIPart3()等,它按此顺序运行,放入[[[XCUIApplication alloc] init] launch];testUI()的第一行,而不是其他地方.


Adr*_*ian 6

为了改善@James Goe的答案-

为了避免所有这些重新启动,但保持运行单个测试的能力-不在乎测试的运行顺序,您可以:

class MyTests: XCTestCase {
    static var launched = false

    override func setUp() {
        if (!MyTests.launched) {
            app.launch()
            MyTests.launched = true
        }
Run Code Online (Sandbox Code Playgroud)

(当然,既然您不重新启动应用程序,则必须更加关心状态,但这是另一回事了。它肯定更快。)