我正在使用xcode 8.3.3,swift,我试图让tearDown方法只运行一次。
我使用此处提供的解决方案启动应用程序一次: XCTestCase not launching application in setUp class method
在tearDown方法中,我想注销该应用程序。我只想这样做一次。
XCTest文档有一个类tearDown()方法,但是当我尝试使用它时 - 它再也无法访问该应用程序了?: https://developer.apple.com/documentation/xctest/xctestcase/understanding_setup_and_teardown_for_test_methods
这是我在使用tearDown方法时得到的所有内容,因此它无法访问应用程序上的任何元素:
如何在所有测试结束时只在tearDown中运行一次代码?
答案 0 :(得分:2)
你可以做这样的事情
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() {}
}
答案 1 :(得分:0)
XCTestCase有两种不同的setUp / tearDown组合。一个是在个人测试用例级别。另一个是套房层面。只需覆盖class
版本即可获得整个套件:
override class func setUp() {
super.setUp()
// Your code goes here
}
override class func tearDown() {
// Your code goes here
super.tearDown()
}