mirror of
https://github.com/yonaskolb/XcodeGen.git
synced 2024-08-16 16:20:51 +03:00
Merge 4c6b0176e3
into f51719ce29
This commit is contained in:
commit
bb2baabb07
@ -286,10 +286,12 @@ public class SchemeGenerator {
|
|||||||
let testPlans = scheme.test?.testPlans.enumerated().map { index, testPlan in
|
let testPlans = scheme.test?.testPlans.enumerated().map { index, testPlan in
|
||||||
XCScheme.TestPlanReference(reference: "container:\(testPlan.path)", default: defaultTestPlanIndex == index)
|
XCScheme.TestPlanReference(reference: "container:\(testPlan.path)", default: defaultTestPlanIndex == index)
|
||||||
} ?? []
|
} ?? []
|
||||||
|
let testBuildableEntries = buildActionEntries.filter({ $0.buildFor.contains(.testing) }) + testBuildTargetEntries
|
||||||
|
let testMacroExpansionBuildableRef = testBuildableEntries.map(\.buildableReference).contains(buildableReference) ? buildableReference : testBuildableEntries.first?.buildableReference
|
||||||
|
|
||||||
let testAction = XCScheme.TestAction(
|
let testAction = XCScheme.TestAction(
|
||||||
buildConfiguration: scheme.test?.config ?? defaultDebugConfig.name,
|
buildConfiguration: scheme.test?.config ?? defaultDebugConfig.name,
|
||||||
macroExpansion: buildableReference,
|
macroExpansion: testMacroExpansionBuildableRef,
|
||||||
testables: testables,
|
testables: testables,
|
||||||
testPlans: testPlans.isEmpty ? nil : testPlans,
|
testPlans: testPlans.isEmpty ? nil : testPlans,
|
||||||
preActions: scheme.test?.preActions.map(getExecutionAction) ?? [],
|
preActions: scheme.test?.preActions.map(getExecutionAction) ?? [],
|
||||||
|
@ -479,6 +479,46 @@ class SchemeGeneratorTests: XCTestCase {
|
|||||||
try expect(xcscheme.launchAction?.macroExpansion?.buildableName) == "MyApp.app"
|
try expect(xcscheme.launchAction?.macroExpansion?.buildableName) == "MyApp.app"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$0.it("generates scheme with macroExpansion from tests when the main target is not part of the scheme") {
|
||||||
|
let app = Target(
|
||||||
|
name: "MyApp",
|
||||||
|
type: .application,
|
||||||
|
platform: .iOS,
|
||||||
|
dependencies: []
|
||||||
|
)
|
||||||
|
|
||||||
|
let mockApp = Target(
|
||||||
|
name: "MockApp",
|
||||||
|
type: .application,
|
||||||
|
platform: .iOS,
|
||||||
|
dependencies: []
|
||||||
|
)
|
||||||
|
|
||||||
|
let testBundle = Target(
|
||||||
|
name: "TestBundle",
|
||||||
|
type: .unitTestBundle,
|
||||||
|
platform: .iOS
|
||||||
|
)
|
||||||
|
let appTarget = Scheme.BuildTarget(target: .local(app.name), buildTypes: [.running])
|
||||||
|
let mockAppTarget = Scheme.BuildTarget(target: .local(mockApp.name), buildTypes: [.testing])
|
||||||
|
let testBundleTarget = Scheme.BuildTarget(target: .local(testBundle.name), buildTypes: [.testing])
|
||||||
|
|
||||||
|
let scheme = Scheme(
|
||||||
|
name: "TestScheme",
|
||||||
|
build: Scheme.Build(targets: [appTarget, mockAppTarget, testBundleTarget]),
|
||||||
|
run: Scheme.Run(config: "Debug", macroExpansion: "MyApp")
|
||||||
|
)
|
||||||
|
let project = Project(
|
||||||
|
name: "test",
|
||||||
|
targets: [app, mockApp, testBundle],
|
||||||
|
schemes: [scheme]
|
||||||
|
)
|
||||||
|
let xcodeProject = try project.generateXcodeProject()
|
||||||
|
|
||||||
|
let xcscheme = try unwrap(xcodeProject.sharedData?.schemes.first)
|
||||||
|
try expect(xcscheme.testAction?.macroExpansion?.buildableName) == "MockApp.app"
|
||||||
|
}
|
||||||
|
|
||||||
$0.it("generates scheme with test target of local swift package") {
|
$0.it("generates scheme with test target of local swift package") {
|
||||||
let targetScheme = TargetScheme(
|
let targetScheme = TargetScheme(
|
||||||
testTargets: [Scheme.Test.TestTarget(targetReference: TestableTargetReference(name: "XcodeGenKitTests", location: .package("XcodeGen")))])
|
testTargets: [Scheme.Test.TestTarget(targetReference: TestableTargetReference(name: "XcodeGenKitTests", location: .package("XcodeGen")))])
|
||||||
|
Loading…
Reference in New Issue
Block a user