Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Generate TestPlan via Tuist to prevent stale ids
  • Loading branch information
lucaschifino committed Apr 16, 2026
commit e9c448a5f939a68544e1c73b406fd08107b497b1
3 changes: 1 addition & 2 deletions .github/actions/perform_unit_tests/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ runs:
-project firefox-ios/Client.xcodeproj \
-configuration Testing \
-enableCodeCoverage NO \
-testPlan UnitTest \
-destination 'platform=iOS Simulator,name=iPhone 17' \
-resultBundlePath TestResults.xcresult \
-derivedDataPath DerivedData \
Expand All @@ -48,4 +47,4 @@ runs:
require_tests: false
include_passed: true
detailed_summary: true
fail_on_failure: false
fail_on_failure: false
24 changes: 0 additions & 24 deletions firefox-ios/EcosiaTests/UnitTest.xctestplan

This file was deleted.

59 changes: 51 additions & 8 deletions firefox-ios/Tuist/ProjectDescriptionHelpers/Schemes+Ecosia.swift
Original file line number Diff line number Diff line change
@@ -1,16 +1,58 @@
import ProjectDescription

/// Ecosia schemes. Test plan must match CI (.github/actions/perform_unit_tests/action.yml).
/// Ecosia schemes.
///
/// Test targets and skipped tests are declared inline so Tuist resolves
/// identifiers at generation time — no manually-maintained .xctestplan
/// with fragile UUIDs needed.
public enum EcosiaSchemes {

// MARK: - Shared test targets

/// Test targets shared by Ecosia & EcosiaBeta schemes.
private static let unitTestTargets: [TestableTarget] = [
"EcosiaTests",
"ClientTests",
"SyncTests",
"StorageTests",
"SharedTests",
"SyncTelemetryTests",
]

/// Tests to skip across all unit-test schemes.
///
/// Format: `"ClassName/methodName()"` for a single test,
/// `"ClassName"` for an entire test class.
/// These are written into the xcscheme's `<SkippedTests>` section.
private static let skippedTests: [String] = [
// EcosiaTests
"AppDelegateFeatureManagementIntegrationTests/testStateAfterDidBecomeActive_expectesSameModel_AfterDidFinishLaunchingWithOptions()",

// ClientTests
"ContentBlockerTests/testCompileListsNotInStore_callsCompletionHandlerSuccessfully()",
"GeneralizedImageFetcherTests/testBadStatusCode()",
"GeneralizedImageFetcherTests/testErrorResponse()",
"GeneralizedImageFetcherTests/testNilData()",
"GleanPlumbMessageManagerTests/testManagerOnMessagePressed_withMalformedURL()",
"IntroScreenManagerTests/testHasSeenIntroScreen_shouldNotShowIt()",
"ShortcutRouteTests",
"SyncContentSettingsViewControllerTests",

// StorageTests
"TestBrowserDB/testMovesDB()",
]

// MARK: - Schemes

public static let all: [Scheme] = [
.scheme(
name: "Ecosia",
buildAction: .buildAction(targets: ["Client"]),
testAction: .testPlans(
["firefox-ios-tests/Tests/UnitTest.xctestplan"],
testAction: .targets(
unitTestTargets,
configuration: "Testing",
attachDebugger: false
attachDebugger: false,
skippedTests: skippedTests
),
runAction: .runAction(
executable: "Client",
Expand All @@ -23,10 +65,11 @@ public enum EcosiaSchemes {
.scheme(
name: "EcosiaBeta",
buildAction: .buildAction(targets: ["Client"]),
testAction: .testPlans(
["firefox-ios-tests/Tests/UnitTest.xctestplan"],
testAction: .targets(
unitTestTargets,
configuration: "Testing",
attachDebugger: false
attachDebugger: false,
skippedTests: skippedTests
),
runAction: .runAction(
configuration: "BetaDebug",
Expand All @@ -46,4 +89,4 @@ public enum EcosiaSchemes {
runAction: .runAction(executable: "Client")
),
]
}
}
254 changes: 0 additions & 254 deletions firefox-ios/firefox-ios-tests/Tests/UnitTest.xctestplan

This file was deleted.

Loading