在 XCTest 中完成测试套件 运行 后执行操作

Performing an action after a test suite has finished running in XCTest

我需要在我的测试套件中的所有测试完成后进行 API 调用 运行。我知道方法 testSuiteDidFinish(_ testSuite: XCTestSuite),这个方法在测试套件执行后确实会被调用,但是它被调用的次数与我拥有的测试用例的数量一样多。在我的测试套件中,我有三个测试用例。我在测试中添加了一个观察者 class。在我的观察者 class 中,这是我所拥有的:

public func testSuiteDidFinish(_ testSuite: XCTestSuite) {
   print("done")
}

"Done" 在执行三个测试后被打印三次。为什么要这样做?

下面的函数可以很好地满足我想要实现的目标:

override class func tearDown() { 
   }

在我的测试之后,当测试 class 完成执行时,其中写入的内容只会被调用一次。