From e7f13a2f4396dedd7e63abfa69a5139473c702fe Mon Sep 17 00:00:00 2001 From: Alex Deem Date: Sat, 21 Jan 2023 22:41:20 +1100 Subject: [PATCH] Fail tests if a test file fails to be parsed --- Tests/ScreamURITemplateTests/TestFileTests.swift | 5 ++++- Tests/ScreamURITemplateTests/TestModels.swift | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Tests/ScreamURITemplateTests/TestFileTests.swift b/Tests/ScreamURITemplateTests/TestFileTests.swift index 22c0685..a38ac7e 100644 --- a/Tests/ScreamURITemplateTests/TestFileTests.swift +++ b/Tests/ScreamURITemplateTests/TestFileTests.swift @@ -80,7 +80,10 @@ class TestFileTests: XCTestCase { return fileTestSuite } - let testGroups = parseTestFile(URL: testURL) + guard let testGroups = parseTestFile(URL: testURL) else { + fileTestSuite.addTest(TestFileTests(selector: #selector(TestFileTests.testFileParseFailed))) + return fileTestSuite + } for group in testGroups { let groupTestSuite = XCTestSuite(name: "Group: \(group.name)") for test in group.testcases { diff --git a/Tests/ScreamURITemplateTests/TestModels.swift b/Tests/ScreamURITemplateTests/TestModels.swift index 37efab9..7352989 100644 --- a/Tests/ScreamURITemplateTests/TestModels.swift +++ b/Tests/ScreamURITemplateTests/TestModels.swift @@ -135,11 +135,11 @@ extension TestCase { } } -public func parseTestFile(URL: URL) -> [TestGroup] { +public func parseTestFile(URL: URL) -> [TestGroup]? { guard let testData = try? Data(contentsOf: URL), let testCollection = try? JSONDecoder().decode(TestFile.self, from: testData) else { print("Failed to decode test file \(URL)") - return [] + return nil } return testCollection.map { testGroupName, testGroupData in