File: XCTestSuiteRun.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (66 lines) | stat: -rw-r--r-- 2,276 bytes parent folder | download | duplicates (2)
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
    }
}