Xcode XCTestCase未在安装类方法中启动应用程序

Xcode XCTestCase未在安装类方法中启动应用程序,xcode,xctest,xcode-ui-testing,ios-ui-automation,xctestcase,Xcode,Xctest,Xcode Ui Testing,Ios Ui Automation,Xctestcase,我使用的是XCode 8和XCTestCase。我创建了一个类设置函数,在所有测试之前运行一次,在每个测试用例之前运行另一个设置 我希望应用程序在所有测试用例之前启动一次。如果我在类设置中使用launch,它永远不会被执行。如果我在每次测试之前运行的设置中使用启动,它确实会启动测试 它打印: 课堂设置 末级设置 设置中 在试验方法中 但应用程序从未启动。如果我在第二次安装中取消注释该行以启动应用程序,它将被启动 如何在测试类中的所有测试之前启动一次应用程序?我面临同样的问题,并通过以下方式解决

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

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

它打印:

课堂设置

末级设置

设置中

在试验方法中

但应用程序从未启动。如果我在第二次安装中取消注释该行以启动应用程序,它将被启动


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

我面临同样的问题,并通过以下方式解决了它

class MyTestCase: XCTestCase {

    static var app: XCUIApplication?

    override func setUp() {
        super.setUp()

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

    // Tests...
}

这将仅在第一次调用
设置
方法时启动应用程序。

谢谢!这个变通办法对我确实有效。仍然好奇为什么它不能在苹果为整个设置提供的类函数中工作。但这在那之前是有效的!多谢!我了解到与XUIApplication的交互在类方法中不起作用,我认为这可能是Xcode UI测试工作方式的一个限制。这真的很糟糕。苹果的XUITest基本上没有做它声明应该允许的事情: