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.
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?
I faced the same issue and solved it the following way
class MyTestCase: XCTestCase {
static var app: XCUIApplication?
override func setUp() {
super.setUp()
if MyTestCase.app == nil {
MyTestCase.app = XCUIApplication()
MyTestCase.app!.launch()
}
}
// Tests...
}
This will only launch the application at the first time the setUp
method is called.
来源:https://stackoverflow.com/questions/45021466/xctestcase-not-launching-application-in-setup-class-method