3

I am using XCode 8 and XCTestCase. I created a class setUp function to be ran once before all tests, and the other setUp to be ran before each test case.

I want the application to be launched once before all test cases. If I use the launch in the class setUp, it never gets executed. If I use the launch in the setUp that is ran before each test, it does launch the test.

enter image description here

It prints:

IN CLASS SETUP

END CLASS SETUP

IN SETUP

IN TEST METHOD

But the application never gets launched. If I uncomment the line to launch the application in the second setUp, it will get launched.

How can I have the application be launched once before all the tests in my test class?

4

1 回答 1

3

我遇到了同样的问题并通过以下方式解决了

class MyTestCase: XCTestCase {

    static var app: XCUIApplication?

    override func setUp() {
        super.setUp()

        if MyTestCase.app == nil {
            MyTestCase.app = XCUIApplication()
            MyTestCase.app!.launch()
        }
    }

    // Tests...
}

这只会在第一次setUp调用该方法时启动应用程序。

于 2017-07-11T10:46:21.540 回答