【发布时间】:2018-06-28 09:35:28
【问题描述】:
我需要在我的测试套件中的所有测试完成运行后进行 API 调用。我知道testSuiteDidFinish(_ testSuite: XCTestSuite) 方法,这个方法在测试套件执行后会被调用,但是它被调用的次数与我拥有的测试用例的数量一样多。在我的测试套件中,我有三个测试用例。我在测试类中添加了一个观察者。在我的观察者类中,这就是我所拥有的:
public func testSuiteDidFinish(_ testSuite: XCTestSuite) {
print("done")
}
“完成”在执行三个测试后打印三次。为什么要这样做?
【问题讨论】:
-
@Andrea Mugnaini,我通常只运行与我要测试的应用程序模块相对应的测试类。我不运行整个测试包。 testSuiteDidFinish 完成了这项工作,只是它被多次调用:(我尝试像你说的那样在我的观察者类中添加一个 testBundleDidFinish 方法,但是当我在测试类中运行测试时它没有被调用。
-
请说明你是如何创建和注册你的观察者的。另外,打印
testSuite.name -
这是我的观察者类: public class UITestObserver: NSObject, XCTestObservation {static var result = 1 public func testCase(_ testCase: XCTestCase, didFailWithDescription description: String, inFile filePath: String?, atLine lineNumber: Int){ UITestObserver.result = 5 } public func testSuiteDidFinish(_ testSuite: XCTestSuite) { print(testSuite.name) }
-
测试套件“LoginTests”于 2018-01-22 12:57:36.092 通过。执行 2 次测试,在 79.535 (79.541) 秒内有 0 次失败(0 次意外) LoginTests LoginTests 测试套件“FreshteamUITests.xctest”于 2018-01-22 12:58:48.465 通过。执行 2 次测试,在 79.535 (151.915) 秒内有 0 次失败(0 次意外) FreshteamUITests.xctest FreshteamUITests.xctest 测试套件“选定测试”于 2018 年 1 月 22 日 12:58:55.098 通过。执行 2 次测试,在 79.535 (158.550) 秒内有 0 次失败(0 次意外)
-
我不明白.. print(testSuite.name) 处的断点被暂停了多次......我相信有四次。首先它打印 'LoginTests' ,我的测试套件的实际名称,然后是 'Selected Tests'。它们每个都打印两次。
标签: objective-c swift xcode xctest xctestcase