如何运行swift XCTest拆卸一次

如何运行swift XCTest拆卸一次,swift,xctest,xcode-ui-testing,ios-ui-automation,xctestcase,Swift,Xctest,Xcode Ui Testing,Ios Ui Automation,Xctestcase,我使用的是xcode 8.3.3,swift,我试图让tearDown方法只运行一次 我使用此处提供的解决方案启动应用程序一次: 在tearDown方法中,我想注销应用程序。我只想做一次 XCTest文档有一个类tearDown()方法,但当我尝试使用它时,它不再具有对应用程序的访问权限: 这是我在使用tearDown方法时得到的所有信息,因此它无法再访问应用程序上的任何元素: 如何在所有测试结束时只在拆卸中运行一次代码?您可以这样做 import XCTest class TestSu

我使用的是xcode 8.3.3,swift,我试图让tearDown方法只运行一次

我使用此处提供的解决方案启动应用程序一次:

在tearDown方法中,我想注销应用程序。我只想做一次

XCTest文档有一个类tearDown()方法,但当我尝试使用它时,它不再具有对应用程序的访问权限:

这是我在使用tearDown方法时得到的所有信息,因此它无法再访问应用程序上的任何元素:


如何在所有测试结束时只在拆卸中运行一次代码?

您可以这样做

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() {}
}

你可以这样做

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() {}
}

XCTestCase有两种不同的设置/拆卸组合。一个是在单个测试用例级别。另一个是在套件级别。只需覆盖
版本即可获得整个套件:

override class func setUp() {
    super.setUp()
    // Your code goes here
}

override class func tearDown() {
    // Your code goes here
    super.tearDown()
}

XCTestCase有两种不同的设置/拆卸组合。一个是在单个测试用例级别。另一个是在套件级别。只需覆盖
版本即可获得整个套件:

override class func setUp() {
    super.setUp()
    // Your code goes here
}

override class func tearDown() {
    // Your code goes here
    super.tearDown()
}

您是指在所有
XCTestCase
s中的所有测试结束时,还是仅在当前
XCTestCase
中的测试结束时?在当前XCTestCase中的所有测试结束后,感谢您的澄清。您的意思是在整个
XCTestCase
s的所有测试结束时,还是在当前
XCTestCase
的测试结束时?在当前XCTestCase的所有测试结束后,感谢您的澄清。谢谢!这个解决方法现在就可以了:)我真希望苹果能提供全面的测试设置和拆卸方法,就像他们说的那样!我需要做的唯一更改是使用“self.testInvocations().count”而不是“testInvocations.count”我认为您不需要
self
部分,但是在swift 3中可能仍然需要
()
。谢谢!这个解决方法现在就可以了:)我真希望苹果能提供全面的测试设置和拆卸方法,就像他们说的那样!我需要做的唯一更改是使用“self.testInvocations().count”而不是“testInvocations.count”我认为您不需要
self
部分,但是在swift 3中可能仍然需要
()
。嗨,我在问题中解释了为什么类func对我不起作用。嗨,我在问题中解释了为什么func课程不适合我。