Add a TestPlan

This commit is contained in:
Ben Kreeger 2025-11-21 16:57:50 -06:00
parent 2bfe9a90cd
commit c3ba763d38
Signed by: kreeger
GPG Key ID: D5CF8683D4BE4B50
4 changed files with 114 additions and 2 deletions

View File

@ -32,6 +32,7 @@
C3BB763B2ED0C38800D56534 /* Meow.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Meow.app; sourceTree = BUILT_PRODUCTS_DIR; };
C3BB76482ED0C38900D56534 /* MeowTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MeowTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
C3BB76522ED0C38900D56534 /* MeowUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MeowUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
C3FB37E72ED12593006DBCA1 /* Meow.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = Meow.xctestplan; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
@ -81,6 +82,7 @@
C3BB76322ED0C38800D56534 = {
isa = PBXGroup;
children = (
C3FB37E72ED12593006DBCA1 /* Meow.xctestplan */,
C3A5E8D22ED0C5E8002DB10E /* Meow */,
C3BB763D2ED0C38800D56534 /* App */,
C3BB764B2ED0C38900D56534 /* MeowTests */,

25
Meow.xctestplan Normal file
View File

@ -0,0 +1,25 @@
{
"configurations" : [
{
"id" : "AF2E63D0-1B32-459D-B05F-34186D0584E0",
"name" : "Test Scheme Action",
"options" : {
}
}
],
"defaultOptions" : {
"performanceAntipatternCheckerEnabled" : true
},
"testTargets" : [
{
"parallelizable" : true,
"target" : {
"containerPath" : "container:",
"identifier" : "MeowTests",
"name" : "MeowTests"
}
}
],
"version" : 1
}

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "2610"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "Meow"
BuildableName = "Meow"
BlueprintName = "Meow"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<TestPlans>
<TestPlanReference
reference = "container:../Meow.xctestplan"
default = "YES">
</TestPlanReference>
</TestPlans>
<Testables>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "MeowTests"
BuildableName = "MeowTests"
BlueprintName = "MeowTests"
ReferencedContainer = "container:">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "Meow"
BuildableName = "Meow"
BlueprintName = "Meow"
ReferencedContainer = "container:">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -17,13 +17,13 @@ struct MeowTests {
return URLSession(configuration: configuration)
}()
@Test
@Test("constructor retains baseURL")
func constructor() async throws {
let instance = vendInstance()
#expect(instance.baseURL == baseURL)
}
@Test
@Test("getFacts calls the appropriate API and returns a result")
func getFacts() async throws {
let instance = vendInstance()
let count = 5