如何 运行 swift XCTest 拆卸一次

How to run swift XCTest tearDown once

我正在使用 xcode 8.3.3,swift,并且我试图将 tearDown 方法设置为 运行 一次。

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

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

XCTest 文档有一个 class tearDown() 方法,但是当我尝试使用它时 - 它不再具有对应用程序的访问权限了吗?: https://developer.apple.com/documentation/xctest/xctestcase/understanding_setup_and_teardown_for_test_methods

这是我在 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() {}
}

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

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

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