From f7db86087f6ccebff3d28ed857936d8beb609e91 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 Aug 2025 23:00:30 +0000 Subject: [PATCH 1/2] Initial plan From 8f5adcfdfaa2fbde4ff7e8802a36c0e506322e32 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 Aug 2025 23:31:53 +0000 Subject: [PATCH 2/2] Fix missing --detailed-stacktrace flag by re-registering DetailedStacktraceCommandProvider Co-authored-by: thomhurst <30480171+thomhurst@users.noreply.github.com> --- .../Extensions/TestApplicationBuilderExtensions.cs | 5 ++++- TUnit.Engine/Framework/TUnitServiceProvider.cs | 1 + TUnit.Engine/TUnitMessageBus.cs | 7 +++++-- 3 files changed, 10 insertions(+), 3 deletions(-) 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; }