 @objc(QCKSpecRunner)
 @objcMembers
 class QuickSpecRunner: NSObject {
-    static func runSpec(_ specClass: QuickSpec.Type) -> TestRun? {
+    static func runSpec(_ specClass: QuickSpec.Type) -> XCTestRun? {
         return qck_runSpec(specClass)
     }
 
-    static func runSpecs(_ specClasses: [QuickSpec.Type]) -> TestRun? {
+    static func runSpecs(_ specClasses: [QuickSpec.Type]) -> XCTestRun? {
         return qck_runSpecs(specClasses)
     }
 }

 @return An XCTestRun instance that contains information such as the number of failures, etc.
 */
@discardableResult
func qck_runSpec(_ specClass: QuickSpec.Type) -> TestRun? {
    return qck_runSpecs([specClass])
}


 @return An XCTestRun instance that contains information such as the number of failures, etc.
 */
@discardableResult
func qck_runSpecs(_ specClasses: [QuickSpec.Type]) -> XCTestRun? {
    return World.anotherWorld { world -> XCTestRun? in
        QuickConfiguration.configureSubclassesIfNeeded(world: world)

        world.isRunningAdditionalSuites = true
        defer { world.isRunningAdditionalSuites = false }

        let suite = XCTestSuite(name: "MySpecs")
        for specClass in specClasses {
            #if canImport(Darwin)
            let test = specClass.defaultTestSuite
            #else
            let test = TestCaseSuite(specClass: specClass)
            #endif
            suite.addTest(test)
        }

        let result: XCTestRun? = XCTestObservationCenter.shared.qck_suspendObservation {
            suite.run()
            return suite.testRun
        }
        return result
    }
}

