1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//
// XCTestSuiteRun.swift
// A test run for an `XCTestSuite`.
//
/// A test run for an `XCTestSuite`.
open class XCTestSuiteRun: XCTestRun {
/// The combined `testDuration` of each test case run in the suite.
open override var totalDuration: TimeInterval {
return testRuns.reduce(TimeInterval(0.0)) { $0 + $1.totalDuration }
}
/// The combined execution count of each test case run in the suite.
open override var executionCount: Int {
return testRuns.reduce(0) { $0 + $1.executionCount }
}
/// The combined skip count of each test case run in the suite.
open override var skipCount: Int {
testRuns.reduce(0) { $0 + $1.skipCount }
}
/// The combined failure count of each test case run in the suite.
open override var failureCount: Int {
return testRuns.reduce(0) { $0 + $1.failureCount }
}
/// The combined unexpected failure count of each test case run in the
/// suite.
open override var unexpectedExceptionCount: Int {
return testRuns.reduce(0) { $0 + $1.unexpectedExceptionCount }
}
open override func start() {
super.start()
XCTestObservationCenter.shared.testSuiteWillStart(testSuite)
}
open override func stop() {
super.stop()
XCTestObservationCenter.shared.testSuiteDidFinish(testSuite)
}
/// The test run for each of the tests in this suite.
/// Depending on what kinds of tests this suite is composed of, these could
/// be some combination of `XCTestCaseRun` and `XCTestSuiteRun` objects.
open private(set) var testRuns = [XCTestRun]()
/// Add a test run to the collection of `testRuns`.
/// - Note: It is rare to call this method outside of XCTest itself.
open func addTestRun(_ testRun: XCTestRun) {
testRuns.append(testRun)
}
private var testSuite: XCTestSuite {
return test as! XCTestSuite
}
}
|