| // 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 |
| // |
| // |
| // XCTestCaseSuite.swift |
| // A test suite associated with a particular test case class. |
| // |
| |
| /// A test suite which is associated with a particular test case class. It will |
| /// call `setUp` and `tearDown` on the class itself before and after invoking |
| /// all of the test cases making up the class. |
| internal class XCTestCaseSuite: XCTestSuite { |
| private let testCaseClass: XCTestCase.Type? |
| |
| init(testCaseEntry: XCTestCaseEntry) { |
| let testCaseClass = testCaseEntry.testCaseClass |
| self.testCaseClass = testCaseClass |
| super.init(name: String(describing: testCaseClass)) |
| |
| for (testName, testClosure) in testCaseEntry.allTests { |
| let testCase = testCaseClass.init(name: testName, testClosure: testClosure) |
| addTest(testCase) |
| } |
| } |
| |
| override func setUp() { |
| if let testCaseClass = testCaseClass { |
| testCaseClass.setUp() |
| } |
| } |
| |
| override func tearDown() { |
| if let testCaseClass = testCaseClass { |
| testCaseClass.tearDown() |
| } |
| } |
| } |