diff --git a/TUnit.Engine/Extensions/TestApplicationBuilderExtensions.cs b/TUnit.Engine/Extensions/TestApplicationBuilderExtensions.cs index 667f8a333e..266e051938 100644 --- a/TUnit.Engine/Extensions/TestApplicationBuilderExtensions.cs +++ b/TUnit.Engine/Extensions/TestApplicationBuilderExtensions.cs @@ -37,8 +37,11 @@ public static void AddTUnit(this ITestApplicationBuilder testApplicationBuilder) testApplicationBuilder.CommandLine.AddProvider(() => new ParallelismStrategyCommandProvider(extension)); testApplicationBuilder.CommandLine.AddProvider(() => new AdaptiveMetricsCommandProvider(extension)); - // Unified verbosity control (replaces HideTestOutput, DisableLogo, DetailedStacktrace) + // Unified verbosity control (replaces HideTestOutput, DisableLogo) testApplicationBuilder.CommandLine.AddProvider(() => new VerbosityCommandProvider(extension)); + + // Keep detailed stacktrace option for backward compatibility + testApplicationBuilder.CommandLine.AddProvider(() => new DetailedStacktraceCommandProvider(extension)); testApplicationBuilder.TestHost.AddDataConsumer(_ => githubReporter); testApplicationBuilder.TestHost.AddTestHostApplicationLifetime(_ => githubReporter); diff --git a/TUnit.Engine/Framework/TUnitServiceProvider.cs b/TUnit.Engine/Framework/TUnitServiceProvider.cs index 6319787425..81c83f70a9 100644 --- a/TUnit.Engine/Framework/TUnitServiceProvider.cs +++ b/TUnit.Engine/Framework/TUnitServiceProvider.cs @@ -78,6 +78,7 @@ public TUnitServiceProvider(IExtension extension, MessageBus = Register(new TUnitMessageBus( extension, CommandLineOptions, + VerbosityService, frameworkServiceProvider, context)); diff --git a/TUnit.Engine/TUnitMessageBus.cs b/TUnit.Engine/TUnitMessageBus.cs index e051534208..14ec00738a 100644 --- a/TUnit.Engine/TUnitMessageBus.cs +++ b/TUnit.Engine/TUnitMessageBus.cs @@ -9,12 +9,13 @@ using TUnit.Engine.CommandLineProviders; using TUnit.Engine.Exceptions; using TUnit.Engine.Extensions; +using TUnit.Engine.Services; #pragma warning disable TPEXP namespace TUnit.Engine; -internal class TUnitMessageBus(IExtension extension, ICommandLineOptions commandLineOptions, IServiceProvider serviceProvider, ExecuteRequestContext context) : ITUnitMessageBus, IDataProducer +internal class TUnitMessageBus(IExtension extension, ICommandLineOptions commandLineOptions, VerbosityService verbosityService, IServiceProvider serviceProvider, ExecuteRequestContext context) : ITUnitMessageBus, IDataProducer { private readonly SessionUid _sessionSessionUid = context.Request.Session.SessionUid; @@ -101,7 +102,9 @@ public async ValueTask Failed(TestContext testContext, Exception exception, Date private Exception SimplifyStacktrace(Exception exception) { - if (commandLineOptions.IsOptionSet(DetailedStacktraceCommandProvider.DetailedStackTrace)) + // Check both the legacy --detailed-stacktrace flag and the new verbosity system + if (commandLineOptions.IsOptionSet(DetailedStacktraceCommandProvider.DetailedStackTrace) || + (verbosityService?.ShowDetailedStackTrace == true)) { return exception; }