From a7792c8f14256788ba0c2b180ebfcfd6f290fc6b Mon Sep 17 00:00:00 2001 From: Franco Meloni Date: Mon, 23 Dec 2019 22:20:57 +0000 Subject: [PATCH] Use enum for checks result --- .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 48132 bytes .../xcschemes/xcschememanagement.plist | 32 ++ Sources/Rocket/main.swift | 11 +- Sources/RocketLib/Checks/Check.swift | 11 +- .../Checks/CleanGitStatusCheck.swift | 10 +- .../CleanGitStatusCheckTests.swift | 8 +- Tests/RocketTests/XCTestManifests.swift | 335 +++++++++++------- 8 files changed, 261 insertions(+), 153 deletions(-) create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata create mode 100644 .swiftpm/xcode/package.xcworkspace/xcuserdata/franco.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 .swiftpm/xcode/xcuserdata/franco.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/franco.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/franco.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..01cfc3fd244e1acb2c6bad5fc40efa15adfcb3e6 GIT binary patch literal 48132 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 + + + + SchemeUserState + + Rocket.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + RocketLib + + primary + + + RocketTests + + primary + + + rocket + + primary + + + + + diff --git a/Sources/Rocket/main.swift b/Sources/Rocket/main.swift index 5bdeece..8f43085 100644 --- a/Sources/Rocket/main.swift +++ b/Sources/Rocket/main.swift @@ -39,11 +39,18 @@ if let rocketYamlPath = RocketFileFinder.rocketFilePath() { } let checks = ChecksParser.parsePreReleaseChecks(fromDictionary: dictionary) -let failedChecks = checks.filter { !$0.check() } +let failedChecks = checks.compactMap { check -> String? in + switch check.check() { + case .success: + return nil + case let .failure(error): + return error + } +} guard failedChecks.isEmpty else { logger.logError("Pre release checks failed", - failedChecks.map { $0.errorMessage }.joined(separator: "\n"), + failedChecks.joined(separator: "\n"), separator: "\n") exit(1) } diff --git a/Sources/RocketLib/Checks/Check.swift b/Sources/RocketLib/Checks/Check.swift index d714f25..9789751 100644 --- a/Sources/RocketLib/Checks/Check.swift +++ b/Sources/RocketLib/Checks/Check.swift @@ -1,7 +1,10 @@ public protocol Check { init() - - var errorMessage: String { get } - - func check() -> Bool + + func check() -> CheckResult +} + +public enum CheckResult: Equatable { + case success + case failure(String) } diff --git a/Sources/RocketLib/Checks/CleanGitStatusCheck.swift b/Sources/RocketLib/Checks/CleanGitStatusCheck.swift index 21e098d..d6df098 100644 --- a/Sources/RocketLib/Checks/CleanGitStatusCheck.swift +++ b/Sources/RocketLib/Checks/CleanGitStatusCheck.swift @@ -1,11 +1,9 @@ import Foundation struct CleanGitStatusCheck: Check { + private static let errorMessage: String = "Your git status contains not committed code, please remove it or commit it" + let launcher: ScriptLaunching - - var errorMessage: String { - return "Your git status contains not committed code, please remove it or commit it" - } init() { self.init(launcher: ScriptLauncher()) @@ -15,9 +13,9 @@ struct CleanGitStatusCheck: Check { self.launcher = launcher } - func check() -> Bool { + func check() -> CheckResult { let result = try? launcher.launchScript(withContent: "git diff --name-only", version: nil) - return result?.isEmpty ?? true + return result?.isEmpty == true ? .success : .failure(CleanGitStatusCheck.errorMessage) } } diff --git a/Tests/RocketTests/CleanGitStatusCheckTests.swift b/Tests/RocketTests/CleanGitStatusCheckTests.swift index 9e564df..d4dd068 100644 --- a/Tests/RocketTests/CleanGitStatusCheckTests.swift +++ b/Tests/RocketTests/CleanGitStatusCheckTests.swift @@ -4,25 +4,25 @@ import TestSpy import XCTest final class CleanGitStatusCheckTests: XCTestCase { - func testReturnsTrueWhenThereIsAreNoModifiedFiles() { + func testReturnsSuccessWhenThereIsAreNoModifiedFiles() { let scriptLauncher = SpyScriptLauncher() scriptLauncher.result = "" let check = CleanGitStatusCheck(launcher: scriptLauncher) let result = check.check() - expect(result).to(beTrue()) + expect(result) == .success expect(scriptLauncher).to(haveReceived(.launchScript(content: "git diff --name-only", version: nil))) } - func testReturnsFalseWhenThereIsAreModifiedFiles() { + func testReturnsFailureWhenThereIsAreModifiedFiles() { let scriptLauncher = SpyScriptLauncher() scriptLauncher.result = "/Franco/Test.swift" let check = CleanGitStatusCheck(launcher: scriptLauncher) let result = check.check() - expect(result).to(beFalse()) + expect(result) == .failure("Your git status contains not committed code, please remove it or commit it") expect(scriptLauncher).to(haveReceived(.launchScript(content: "git diff --name-only", version: nil))) } } diff --git a/Tests/RocketTests/XCTestManifests.swift b/Tests/RocketTests/XCTestManifests.swift index b697f21..48bbf85 100644 --- a/Tests/RocketTests/XCTestManifests.swift +++ b/Tests/RocketTests/XCTestManifests.swift @@ -1,160 +1,221 @@ -import XCTest +#if !canImport(ObjectiveC) + import XCTest -extension BranchExecutorTests { - static let __allTests = [ - ("testItSendsEmptyScriptIfTheDictionaryIsNil", testItSendsEmptyScriptIfTheDictionaryIsNil), - ("testItSendsTheCorrectBranchNameToScriptLauncher", testItSendsTheCorrectBranchNameToScriptLauncher), - ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), - ] -} + extension BranchExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__BranchExecutorTests = [ + ("testItSendsEmptyScriptIfTheDictionaryIsNil", testItSendsEmptyScriptIfTheDictionaryIsNil), + ("testItSendsTheCorrectBranchNameToScriptLauncher", testItSendsTheCorrectBranchNameToScriptLauncher), + ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), + ] + } -extension ChecksParserTests { - static let __allTests = [ - ("testItIgnoresTheInvalidSteps", testItIgnoresTheInvalidSteps), - ("testItParsesCorrectlyAValidDictionary", testItParsesCorrectlyAValidDictionary), - ] -} + extension ChecksParserTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__ChecksParserTests = [ + ("testItIgnoresTheInvalidSteps", testItIgnoresTheInvalidSteps), + ("testItParsesCorrectlyAValidDictionary", testItParsesCorrectlyAValidDictionary), + ] + } -extension CleanGitStatusCheckTests { - static let __allTests = [ - ("testReturnsFalseWhenThereIsAreModifiedFiles", testReturnsFalseWhenThereIsAreModifiedFiles), - ("testReturnsTrueWhenThereIsAreNoModifiedFiles", testReturnsTrueWhenThereIsAreNoModifiedFiles), - ] -} + extension CleanGitStatusCheckTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__CleanGitStatusCheckTests = [ + ("testReturnsFailureWhenThereIsAreModifiedFiles", testReturnsFailureWhenThereIsAreModifiedFiles), + ("testReturnsSuccessWhenThereIsAreNoModifiedFiles", testReturnsSuccessWhenThereIsAreNoModifiedFiles), + ] + } -extension CommitExecutorTests { - static let __allTests = [ - ("testItSetsTheParameterIfTheGitHookFolderExists", testItSetsTheParameterIfTheGitHookFolderExists), - ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), - ("testItUsesTheParametersIfAny", testItUsesTheParametersIfAny), - ("testItUsesTheStandardCommitMessageIfNoMessageIsProvided", testItUsesTheStandardCommitMessageIfNoMessageIsProvided), - ] -} + extension CommitExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__CommitExecutorTests = [ + ("testItSetsTheParameterIfTheGitHookFolderExists", testItSetsTheParameterIfTheGitHookFolderExists), + ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), + ("testItUsesTheParametersIfAny", testItUsesTheParametersIfAny), + ("testItUsesTheStandardCommitMessageIfNoMessageIsProvided", testItUsesTheStandardCommitMessageIfNoMessageIsProvided), + ] + } -extension CurrentVersionProviderTests { - static let __allTests = [ - ("testItReturnsTheCorrectTag", testItReturnsTheCorrectTag), - ("testItReturnsTheCorrectVersionIfThereAreNoTags", testItReturnsTheCorrectVersionIfThereAreNoTags), - ] -} + extension CurrentVersionProviderTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__CurrentVersionProviderTests = [ + ("testItReturnsTheCorrectTag", testItReturnsTheCorrectTag), + ("testItReturnsTheCorrectVersionIfThereAreNoTags", testItReturnsTheCorrectVersionIfThereAreNoTags), + ] + } -extension DefaultExecutorStepDescriptionTests { - static let __allTests = [ - ("testItShowsTheCorrectEndDescriptionWhenThereAreNoParameters", testItShowsTheCorrectEndDescriptionWhenThereAreNoParameters), - ("testItShowsTheCorrectEndDescriptionWhenThereAreParameters", testItShowsTheCorrectEndDescriptionWhenThereAreParameters), - ("testItShowsTheCorrectStartDescriptionWhenThereAreNoParameters", testItShowsTheCorrectStartDescriptionWhenThereAreNoParameters), - ("testItShowsTheCorrectStartDescriptionWhenThereAreParameters", testItShowsTheCorrectStartDescriptionWhenThereAreParameters), - ] -} + extension DefaultExecutorStepDescriptionTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__DefaultExecutorStepDescriptionTests = [ + ("testItShowsTheCorrectEndDescriptionWhenThereAreNoParameters", testItShowsTheCorrectEndDescriptionWhenThereAreNoParameters), + ("testItShowsTheCorrectEndDescriptionWhenThereAreParameters", testItShowsTheCorrectEndDescriptionWhenThereAreParameters), + ("testItShowsTheCorrectStartDescriptionWhenThereAreNoParameters", testItShowsTheCorrectStartDescriptionWhenThereAreNoParameters), + ("testItShowsTheCorrectStartDescriptionWhenThereAreParameters", testItShowsTheCorrectStartDescriptionWhenThereAreParameters), + ] + } -extension DevDependenciesModifierTests { - static let __allTests = [ - ("testItHidesTheDependenciesCorrectly", testItHidesTheDependenciesCorrectly), - ("testItShowsTheDependenciesCorrectly", testItShowsTheDependenciesCorrectly), - ] -} + extension DevDependenciesModifierTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__DevDependenciesModifierTests = [ + ("testItHidesTheDependenciesCorrectly", testItHidesTheDependenciesCorrectly), + ("testItShowsTheDependenciesCorrectly", testItShowsTheDependenciesCorrectly), + ] + } -extension GitAddExecutorTests { - static let __allTests = [ - ("testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil", testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil), - ("testItSendsTheCorrectPathsToTheScriptLauncher", testItSendsTheCorrectPathsToTheScriptLauncher), - ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), - ] -} + extension GitAddExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__GitAddExecutorTests = [ + ("testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil", testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil), + ("testItSendsTheCorrectPathsToTheScriptLauncher", testItSendsTheCorrectPathsToTheScriptLauncher), + ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), + ] + } -extension HideDevDependenciesExecutorTests { - static let __allTests = [ - ("testItSendsTheHideDependenciesCallToTheDevDependenciesModifier", testItSendsTheHideDependenciesCallToTheDevDependenciesModifier), - ("testItUsesTheDefaultPackagePath", testItUsesTheDefaultPackagePath), - ] -} + extension HideDevDependenciesExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__HideDevDependenciesExecutorTests = [ + ("testItSendsTheHideDependenciesCallToTheDevDependenciesModifier", testItSendsTheHideDependenciesCallToTheDevDependenciesModifier), + ("testItUsesTheDefaultPackagePath", testItUsesTheDefaultPackagePath), + ] + } -extension NewVersionProviderTests { - static let __allTests = [ - ("testReturnsTheCorrectNewVersion", testReturnsTheCorrectNewVersion), - ] -} + extension NewVersionProviderTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__NewVersionProviderTests = [ + ("testReturnsTheCorrectNewVersion", testReturnsTheCorrectNewVersion), + ] + } -extension PushExecutorTests { - static let __allTests = [ - ("testItAddsTheNoVerifyParameterIfGitHookFolderIsPresent", testItAddsTheNoVerifyParameterIfGitHookFolderIsPresent), - ("testItSendsTheCorrectScriptContent", testItSendsTheCorrectScriptContent), - ("testItSendsTheNoVerifyParameterIfRequired", testItSendsTheNoVerifyParameterIfRequired), - ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), - ] -} + extension PushExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__PushExecutorTests = [ + ("testItAddsTheNoVerifyParameterIfGitHookFolderIsPresent", testItAddsTheNoVerifyParameterIfGitHookFolderIsPresent), + ("testItSendsTheCorrectScriptContent", testItSendsTheCorrectScriptContent), + ("testItSendsTheNoVerifyParameterIfRequired", testItSendsTheNoVerifyParameterIfRequired), + ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), + ] + } -extension RocketFileFinderTests { - static let __allTests = [ - ("testItReturnsNilIfThereAreNoArgumentsAndTheDefaultFileDoesntExist", testItReturnsNilIfThereAreNoArgumentsAndTheDefaultFileDoesntExist), - ("testItReturnsTheArgumentPathIfPresent", testItReturnsTheArgumentPathIfPresent), - ("testItReturnsTheDefaultPathIfNoArgsAreThereAndTheFileExists", testItReturnsTheDefaultPathIfNoArgsAreThereAndTheFileExists), - ] -} + extension RocketFileFinderTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__RocketFileFinderTests = [ + ("testItReturnsNilIfThereAreNoArgumentsAndTheDefaultFileDoesntExist", testItReturnsNilIfThereAreNoArgumentsAndTheDefaultFileDoesntExist), + ("testItReturnsTheArgumentPathIfPresent", testItReturnsTheArgumentPathIfPresent), + ("testItReturnsTheDefaultPathIfNoArgsAreThereAndTheFileExists", testItReturnsTheDefaultPathIfNoArgsAreThereAndTheFileExists), + ] + } -extension ScriptExecutorTests { - static let __allTests = [ - ("testItDoesntSendAnyCommandToTheScriptLauncherIfTheContentIsEmpty", testItDoesntSendAnyCommandToTheScriptLauncherIfTheContentIsEmpty), - ("testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil", testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil), - ("testItSendsTheCorrectScriptToTheScriptLauncher", testItSendsTheCorrectScriptToTheScriptLauncher), - ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), - ] -} + extension ScriptExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__ScriptExecutorTests = [ + ("testItDoesntSendAnyCommandToTheScriptLauncherIfTheContentIsEmpty", testItDoesntSendAnyCommandToTheScriptLauncherIfTheContentIsEmpty), + ("testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil", testItDoesntSendAnyCommandToTheScriptLauncherIfTheDictionaryIsNil), + ("testItSendsTheCorrectScriptToTheScriptLauncher", testItSendsTheCorrectScriptToTheScriptLauncher), + ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), + ] + } -extension StepsParserTests { - static let __allTests = [ - ("testItCreatesAScriptStepForNotRecognisedStrings", testItCreatesAScriptStepForNotRecognisedStrings), - ("testItIgnoresTheInvalidSteps", testItIgnoresTheInvalidSteps), - ("testItParsesCorrectlyAValidDictionary", testItParsesCorrectlyAValidDictionary), - ("testItParsesCorrectlyBeforeAndAfterSteps", testItParsesCorrectlyBeforeAndAfterSteps), - ("testItParsesCorrectlyWhenOnlyAfterIsSpecified", testItParsesCorrectlyWhenOnlyAfterIsSpecified), - ("testItParsesCorrectlyWhenOnlyBeforeIsSpecified", testItParsesCorrectlyWhenOnlyBeforeIsSpecified), - ("testItParsesItReturnsTheDefaultParametersIfTheDictionaryIsEmpty", testItParsesItReturnsTheDefaultParametersIfTheDictionaryIsEmpty), - ] -} + extension ScriptLauncherTestCase { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__ScriptLauncherTestCase = [ + ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), + ] + } -extension SwiftScriptExecutorTests { - static let __allTests = [ - ("testItCreatesTheCorrectProcess", testItCreatesTheCorrectProcess), - ("testItDoesntCreateTheProcessIfThereIsNoScriptPath", testItDoesntCreateTheProcessIfThereIsNoScriptPath), - ("testItPassesTheArgumentsToTheProcess", testItPassesTheArgumentsToTheProcess), - ] -} + extension StepsParserTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__StepsParserTests = [ + ("testItCreatesAScriptStepForNotRecognisedStrings", testItCreatesAScriptStepForNotRecognisedStrings), + ("testItIgnoresTheInvalidSteps", testItIgnoresTheInvalidSteps), + ("testItParsesCorrectlyAValidDictionary", testItParsesCorrectlyAValidDictionary), + ("testItParsesCorrectlyBeforeAndAfterSteps", testItParsesCorrectlyBeforeAndAfterSteps), + ("testItParsesCorrectlyWhenOnlyAfterIsSpecified", testItParsesCorrectlyWhenOnlyAfterIsSpecified), + ("testItParsesCorrectlyWhenOnlyBeforeIsSpecified", testItParsesCorrectlyWhenOnlyBeforeIsSpecified), + ("testItParsesItReturnsTheDefaultParametersIfTheDictionaryIsEmpty", testItParsesItReturnsTheDefaultParametersIfTheDictionaryIsEmpty), + ] + } -extension TagExecutorTests { - static let __allTests = [ - ("testItSendsTheCorrectScriptToTheScriptLauncher", testItSendsTheCorrectScriptToTheScriptLauncher), - ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), - ] -} + extension SwiftScriptExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__SwiftScriptExecutorTests = [ + ("testItCreatesTheCorrectProcess", testItCreatesTheCorrectProcess), + ("testItDoesntCreateTheProcessIfThereIsNoScriptPath", testItDoesntCreateTheProcessIfThereIsNoScriptPath), + ("testItPassesTheArgumentsToTheProcess", testItPassesTheArgumentsToTheProcess), + ] + } -extension UnhideDevDependenciesExecutorTests { - static let __allTests = [ - ("testItSendsTheHideDependenciesCallToTheDevDependenciesModifier", testItSendsTheHideDependenciesCallToTheDevDependenciesModifier), - ("testItUsesTheDefaultPackagePath", testItUsesTheDefaultPackagePath), - ] -} + extension TagExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__TagExecutorTests = [ + ("testItSendsTheCorrectScriptToTheScriptLauncher", testItSendsTheCorrectScriptToTheScriptLauncher), + ("testItUsesAWorkaroundToGenerateTheTestsOnLinux", testItUsesAWorkaroundToGenerateTheTestsOnLinux), + ] + } + + extension UnhideDevDependenciesExecutorTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__UnhideDevDependenciesExecutorTests = [ + ("testItSendsTheHideDependenciesCallToTheDevDependenciesModifier", testItSendsTheHideDependenciesCallToTheDevDependenciesModifier), + ("testItUsesTheDefaultPackagePath", testItUsesTheDefaultPackagePath), + ] + } -#if !os(macOS) public func __allTests() -> [XCTestCaseEntry] { return [ - testCase(BranchExecutorTests.__allTests), - testCase(ChecksParserTests.__allTests), - testCase(CleanGitStatusCheckTests.__allTests), - testCase(CommitExecutorTests.__allTests), - testCase(CurrentVersionProviderTests.__allTests), - testCase(DefaultExecutorStepDescriptionTests.__allTests), - testCase(DevDependenciesModifierTests.__allTests), - testCase(GitAddExecutorTests.__allTests), - testCase(HideDevDependenciesExecutorTests.__allTests), - testCase(NewVersionProviderTests.__allTests), - testCase(PushExecutorTests.__allTests), - testCase(RocketFileFinderTests.__allTests), - testCase(ScriptExecutorTests.__allTests), - testCase(StepsParserTests.__allTests), - testCase(SwiftScriptExecutorTests.__allTests), - testCase(TagExecutorTests.__allTests), - testCase(UnhideDevDependenciesExecutorTests.__allTests), + testCase(BranchExecutorTests.__allTests__BranchExecutorTests), + testCase(ChecksParserTests.__allTests__ChecksParserTests), + testCase(CleanGitStatusCheckTests.__allTests__CleanGitStatusCheckTests), + testCase(CommitExecutorTests.__allTests__CommitExecutorTests), + testCase(CurrentVersionProviderTests.__allTests__CurrentVersionProviderTests), + testCase(DefaultExecutorStepDescriptionTests.__allTests__DefaultExecutorStepDescriptionTests), + testCase(DevDependenciesModifierTests.__allTests__DevDependenciesModifierTests), + testCase(GitAddExecutorTests.__allTests__GitAddExecutorTests), + testCase(HideDevDependenciesExecutorTests.__allTests__HideDevDependenciesExecutorTests), + testCase(NewVersionProviderTests.__allTests__NewVersionProviderTests), + testCase(PushExecutorTests.__allTests__PushExecutorTests), + testCase(RocketFileFinderTests.__allTests__RocketFileFinderTests), + testCase(ScriptExecutorTests.__allTests__ScriptExecutorTests), + testCase(ScriptLauncherTestCase.__allTests__ScriptLauncherTestCase), + testCase(StepsParserTests.__allTests__StepsParserTests), + testCase(SwiftScriptExecutorTests.__allTests__SwiftScriptExecutorTests), + testCase(TagExecutorTests.__allTests__TagExecutorTests), + testCase(UnhideDevDependenciesExecutorTests.__allTests__UnhideDevDependenciesExecutorTests), ] } #endif