diff --git a/Sources/XcbeautifyLib/CaptureGroups.swift b/Sources/XcbeautifyLib/CaptureGroups.swift index 1f392864..8fb554f1 100644 --- a/Sources/XcbeautifyLib/CaptureGroups.swift +++ b/Sources/XcbeautifyLib/CaptureGroups.swift @@ -1318,41 +1318,21 @@ struct TestSuiteStartedCaptureGroup: CaptureGroup { static let outputType: OutputType = .test /// Regular expression captured groups: - /// $1 = suite + /// $1 = suite name /// $2 = time - #if os(Linux) - static let regex = XCRegex(pattern: #"^\s*Test Suite '(.*)' started at(.*)"#) - #else - static let regex = XCRegex(pattern: #"^\s*Test Suite '(?:.*\/)?(.*[ox]ctest.*)' started at(.*)"#) - #endif + static let regex = XCRegex(pattern: #"^\s*Test Suite '(.*)' started at (.*)$"#) - let suite: String + let suiteName: String let time: String init?(groups: [String]) { - assert(groups.count >= 2) - guard let suite = groups[safe: 0], let time = groups[safe: 1] else { return nil } - self.suite = suite + assert(groups.count == 2) + guard let suiteName = groups[safe: 0], let time = groups[safe: 1] else { return nil } + self.suiteName = suiteName self.time = time } } -struct TestSuiteStartCaptureGroup: CaptureGroup { - static let outputType: OutputType = .test - - /// Regular expression captured groups: - /// $1 = test suite name - static let regex = XCRegex(pattern: #"^\s*Test Suite '(.*)' started at"#) - - let testSuiteName: String - - init?(groups: [String]) { - assert(groups.count >= 1) - guard let testSuiteName = groups[safe: 0] else { return nil } - self.testSuiteName = testSuiteName - } -} - struct TestSuiteAllTestsPassedCaptureGroup: CaptureGroup { static let outputType: OutputType = .result static let regex = XCRegex(pattern: #"^\s*(Test Suite 'All tests' passed at.*)"#) diff --git a/Sources/XcbeautifyLib/Formatter.swift b/Sources/XcbeautifyLib/Formatter.swift index f2302e8f..b4684c8e 100644 --- a/Sources/XcbeautifyLib/Formatter.swift +++ b/Sources/XcbeautifyLib/Formatter.swift @@ -204,8 +204,6 @@ package struct Formatter { return renderer.formatTestSuiteAllTestsFailed(group: group) case let group as TestSuiteAllTestsPassedCaptureGroup: return renderer.formatTestSuiteAllTestsPassed(group: group) - case let group as TestSuiteStartCaptureGroup: - return renderer.formatTestSuiteStart(group: group) case let group as TestSuiteStartedCaptureGroup: return renderer.formatTestSuiteStarted(group: group) case let group as TIFFutilCaptureGroup: diff --git a/Sources/XcbeautifyLib/JunitReporter.swift b/Sources/XcbeautifyLib/JunitReporter.swift index 314111ee..3db13dcb 100644 --- a/Sources/XcbeautifyLib/JunitReporter.swift +++ b/Sources/XcbeautifyLib/JunitReporter.swift @@ -35,7 +35,7 @@ package final class JunitReporter { } else if let groups = TestCaseSkippedCaptureGroup.regex.captureGroups(for: line) { guard let testCase = generateSkippedTest(groups: groups) else { return } components.append(.skippedTest(testCase)) - } else if let groups = TestSuiteStartCaptureGroup.regex.captureGroups(for: line) { + } else if let groups = TestSuiteStartedCaptureGroup.regex.captureGroups(for: line) { guard let testStart = generateSuiteStart(groups: groups) else { return } components.append(.testSuiteStart(testStart)) } else if let groups = ParallelTestCaseFailedCaptureGroup.regex.captureGroups(for: line) { @@ -91,8 +91,8 @@ package final class JunitReporter { } private func generateSuiteStart(groups: [String]) -> String? { - guard let group = TestSuiteStartCaptureGroup(groups: groups) else { return nil } - return group.testSuiteName + guard let group = TestSuiteStartedCaptureGroup(groups: groups) else { return nil } + return group.suiteName } package func generateReport() throws -> Data { diff --git a/Sources/XcbeautifyLib/Parser.swift b/Sources/XcbeautifyLib/Parser.swift index aa94dc17..1e84296d 100644 --- a/Sources/XcbeautifyLib/Parser.swift +++ b/Sources/XcbeautifyLib/Parser.swift @@ -52,7 +52,6 @@ package final class Parser { ProcessInfoPlistCaptureGroup.self, TestsRunCompletionCaptureGroup.self, TestSuiteStartedCaptureGroup.self, - TestSuiteStartCaptureGroup.self, TIFFutilCaptureGroup.self, TouchCaptureGroup.self, WriteFileCaptureGroup.self, diff --git a/Sources/XcbeautifyLib/Renderers/OutputRendering.swift b/Sources/XcbeautifyLib/Renderers/OutputRendering.swift index ae5237c2..549f64ee 100644 --- a/Sources/XcbeautifyLib/Renderers/OutputRendering.swift +++ b/Sources/XcbeautifyLib/Renderers/OutputRendering.swift @@ -80,7 +80,6 @@ protocol OutputRendering { func formatTestsRunCompletion(group: TestsRunCompletionCaptureGroup) -> String func formatTestSuiteAllTestsFailed(group: TestSuiteAllTestsFailedCaptureGroup) -> String func formatTestSuiteAllTestsPassed(group: TestSuiteAllTestsPassedCaptureGroup) -> String - func formatTestSuiteStart(group: TestSuiteStartCaptureGroup) -> String func formatTestSuiteStarted(group: TestSuiteStartedCaptureGroup) -> String func formatTIFFUtil(group: TIFFutilCaptureGroup) -> String? func formatTouch(group: TouchCaptureGroup) -> String @@ -387,13 +386,8 @@ extension OutputRendering { group.wholeResult } - func formatTestSuiteStart(group: TestSuiteStartCaptureGroup) -> String { - let testSuite = group.testSuiteName - return colored ? testSuite.s.Bold : testSuite - } - func formatTestSuiteStarted(group: TestSuiteStartedCaptureGroup) -> String { - let testSuite = group.suite + let testSuite = group.testSuiteName let heading = "Test Suite \(testSuite) started" return colored ? heading.s.Bold.f.Cyan : heading } diff --git a/Tests/XcbeautifyLibTests/RendererTests/AzureDevOpsPipelinesRendererTests.swift b/Tests/XcbeautifyLibTests/RendererTests/AzureDevOpsPipelinesRendererTests.swift index b614fa75..a3d5d139 100644 --- a/Tests/XcbeautifyLibTests/RendererTests/AzureDevOpsPipelinesRendererTests.swift +++ b/Tests/XcbeautifyLibTests/RendererTests/AzureDevOpsPipelinesRendererTests.swift @@ -491,9 +491,11 @@ final class AzureDevOpsPipelinesRendererTests: XCTestCase { func testTestCaseStarted() { } - func testTestSuiteStart() { } - - func testTestSuiteStarted() { } + func testTestSuiteStarted() { + let input = "Test Suite 'swift-testingPackageTests.xctest' started at 2024-10-09 16:48:58.588." + let formatted = logFormatted(input) + XCTAssertEqual(formatted, input) + } #if os(macOS) func testTestSuiteAllTestsPassed() { diff --git a/Tests/XcbeautifyLibTests/RendererTests/GitHubActionsRendererTests.swift b/Tests/XcbeautifyLibTests/RendererTests/GitHubActionsRendererTests.swift index 8bb7ba57..edc88207 100644 --- a/Tests/XcbeautifyLibTests/RendererTests/GitHubActionsRendererTests.swift +++ b/Tests/XcbeautifyLibTests/RendererTests/GitHubActionsRendererTests.swift @@ -488,9 +488,11 @@ final class GitHubActionsRendererTests: XCTestCase { func testTestCaseStarted() { } - func testTestSuiteStart() { } - - func testTestSuiteStarted() { } + func testTestSuiteStarted() { + let input = "Test Suite 'swift-testingPackageTests.xctest' started at 2024-10-09 16:48:58.588." + let formatted = logFormatted(input) + XCTAssertEqual(formatted, input) + } #if os(macOS) func testTestSuiteAllTestsPassed() { diff --git a/Tests/XcbeautifyLibTests/RendererTests/TeamCityRendererTests.swift b/Tests/XcbeautifyLibTests/RendererTests/TeamCityRendererTests.swift index cc9d87ed..7289c83c 100644 --- a/Tests/XcbeautifyLibTests/RendererTests/TeamCityRendererTests.swift +++ b/Tests/XcbeautifyLibTests/RendererTests/TeamCityRendererTests.swift @@ -509,9 +509,11 @@ final class TeamCityRendererTests: XCTestCase { func testTestCaseStarted() { } - func testTestSuiteStart() { } - - func testTestSuiteStarted() { } + func testTestSuiteStarted() { + let input = "Test Suite 'swift-testingPackageTests.xctest' started at 2024-10-09 16:48:58.588." + let formatted = noColoredFormatted(input) + XCTAssertEqual(formatted, input) + } #if os(macOS) func testTestSuiteAllTestsPassed() { diff --git a/Tests/XcbeautifyLibTests/RendererTests/TerminalRendererTests.swift b/Tests/XcbeautifyLibTests/RendererTests/TerminalRendererTests.swift index 6ea210f5..6d448910 100644 --- a/Tests/XcbeautifyLibTests/RendererTests/TerminalRendererTests.swift +++ b/Tests/XcbeautifyLibTests/RendererTests/TerminalRendererTests.swift @@ -488,9 +488,11 @@ final class TerminalRendererTests: XCTestCase { func testTestCaseStarted() { } - func testTestSuiteStart() { } - - func testTestSuiteStarted() { } + func testTestSuiteStarted() { + let input = "Test Suite 'swift-testingPackageTests.xctest' started at 2024-10-09 16:48:58.588." + let formatted = noColoredFormatted(input) + XCTAssertEqual(formatted, input) + } #if os(macOS) func testTestSuiteAllTestsPassed() {