XCTestCase没有在setUp类方法

时间:2017-07-10 20:56:51

标签: xcode xctest xcode-ui-testing ios-ui-automation xctestcase

我正在使用XCode 8和XCTestCase。我创建了一个类setUp函数,在所有测试之前运行一次,另一个setUp在每个测试用例之前运行。

我希望在所有测试用例之前启动一次应用程序。如果我在类setUp中使用启动,它永远不会被执行。如果我在每次测试之前运行的setUp中使用启动,它会启动测试。

enter image description here

打印:

IN CLASS SETUP

结束课程设置

IN SETUP

测试方法

但应用程序永远不会启动。如果我取消注释该行以在第二个setUp中启动应用程序,它将启动。

如何在我的测试类中的所有测试之前启动应用程序一次?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并按照以下方式解决了这个问题

class MyTestCase: XCTestCase {

    static var app: XCUIApplication?

    override func setUp() {
        super.setUp()

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

    // Tests...
}

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