Hi @Kus-Sl! I’m Dosu and I’m helping the Tuist team.
This is a confirmed gap in the current implementation. Here’s what happens under the hood:
TestPlanDescriptor.encode()hardcodesdefaultOptions: [:]and a single configuration with empty options — it never reads coverage, environment variable, or expansion settings from theTestAction.- The
TestPlan.generated(...)API only acceptsname,testTargets, and an optionalpath— there are no parameters for plan-level options. - The manifest mapper only carries the path, targets, and
kind: .generatedinto the graph model, soTestAction-level settings likeoptions: [.coverage],coverageTargets,expandVariableFromTarget, andenvironmentVariablesare never forwarded. TestPlanDescriptor+Extras.swift, which builds the descriptor from the graph, similarly passes nothing about coverage or environment variables into the plan.
The underlying XCTestPlan model already supports arbitrary defaultOptions and per-configuration options as [String: AnyCodable] dictionaries [1], so the plumbing to write these values exists — but nothing populates them for generated plans.
Workaround: There is no way to set these options on a generated plan today. If you need coverage, environment variables, or an expansion target in your test plan, you’ll need to maintain a hand-authored .xctestplan file and reference it via .path(...) instead of .generated(...).
Since fixing this requires a design decision (should TestAction options propagate automatically, or should TestPlan.generated(...) grow explicit parameters?), I’d suggest continuing the discussion on the community forum under the development category where the maintainers can weigh in on the preferred approach.
To reply, just mention @dosu.
Share context across your team and agents. Try Dosu.