I am using xcode 8.3.3, swift, and I am trying to get the tearDown method to run only once.
I launch the application once with the solution provided here: XCTestCase not launching application in setUp class method
In the tearDown method, I want to logout of the application. I only want to do this once.
The XCTest documentation has a class tearDown() method, but when I try to use it - it doesn't have access to the application anymore?: https://developer.apple.com/documentation/xctest/xctestcase/understanding_setup_and_teardown_for_test_methods
This is all I get when I am in the tearDown method and so it can't access any elements on the application anymore:
How can I run the code in the tearDown just once at the end of all tests?
You can do something like this
import XCTest
class TestSuite: XCTestCase {
static var testCount = testInvocations.count
override func setUp()
{
super.setUp()
TestSuite.testCount -= 1
}
override func tearDown()
{
if TestSuite.testCount == 0 {
print("Final tearDown")
}
super.tearDown()
}
func testA() {}
func testB() {}
func testC() {}
}