Krasch- och hängdumpar

Dessa funktioner kräver installation av ytterligare NuGet-paket, enligt beskrivningen i varje avsnitt.

Tips/Råd

När du använder Microsoft.Testing.Platform.MSBuild (ingår transitivt av MSTest, NUnit och xUnit-löpare) registreras dessa tillägg automatiskt när du installerar deras NuGet-paket – inga kodändringar behövs. Den manuella registrering som anges i den här artikeln krävs bara om du inaktiverade den automatiskt genererade startpunkten genom att ange <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Kraschdump

Med det här tillägget kan du skapa en kraschdumpfil om processen kraschar. Det här tillägget kräver NuGet-paketet Microsoft.Testing.Extensions.CrashDump .

Manuell registrering

var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHostControllers.AddCrashDumpProvider();

Alternativ

Alternativ Description
--crashdump Genererar en dumpfil när testvärdprocessen kraschar. Stöds i .NET 6.0+.
--crashdump-filename Anger dumpens filnamn.
--crashdump-type Anger typen av dump. Giltiga värden är Mini, Heap, Triage och Full. Standardinställningen är Full. Mer information finns i Typer av minidumpar.
--crash-report [Endast Linux/macOS] Genererar en JSON-kraschrapport när testprocessen kraschar. Kombinera med --crashdump för att också generera en dumpfil. Kräver .NET 7+ när det används ensamt eller .NET 6+ i kombination med --crashdump. Stöds inte på Windows eftersom .NET-körningen ignorerar de underliggande miljövariablerna DOTNET_EnableCrashReport och DOTNET_EnableCrashReportOnly på Windows (dotnet/runtime#80191). Finns i MTP från och med version 2.3.0.
--crash-report-if-supported Samma som --crash-report men ignoreras, med ett informationsmeddelande, på plattformar där kraschrapportgenerering inte stöds. Använd det här alternativet om du vill behålla samma kommandorad över CI-matriser som innehåller Windows. Ömsesidigt uteslutande med --crash-report. Finns i MTP från och med version 2.3.0.
--crash-sequence Styr om en sekvensfil med de tester som startades och avslutades under testsessionen genereras tillsammans med kraschdumpen eller kraschrapporten. Filen gör det möjligt att identifiera de tester som kördes vid tidpunkten för kraschen utan att inspektera dumpen. Giltiga värden är on (standard; accepterar trueockså , enableoch 1) eller off (accepterar falseockså , disableoch 0). Finns i MTP från och med version 2.3.0.

Försiktighet

Tillägget är inte kompatibelt med .NET Framework och ignoreras tyst. För att få stöd för .NET Framework aktiverar du postmortem-felsökning med Sysinternals ProcDump. Mer information finns i Enabling Postmortem Debugging: Window Sysinternals ProcDump. Postmortem-felsökningslösningen samlar också in processkraschinformation för .NET så att du kan undvika att använda tillägget om du riktar in dig på både .NET och .NET Framework-testprogram.

Hängdump

Med det här tillägget kan du skapa en dumpfil efter en viss tidsgräns. Det här tillägget kräver NuGet-paketet Microsoft.Testing.Extensions.HangDump .

Manuell registrering

var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHostControllers.AddHangDumpProvider();

Alternativ

Alternativ Description
--hangdump Genererar en dumpfil om testvärdprocessen låser sig.
--hangdump-filename Anger dumpens filnamn. Stöder följande platshållare: {pname} (testprogramnamn), {pid} (process-ID), {asm} (namn på inmatningssammansättning), {tfm} (målramverksmoniker) och {time} (tidsstämpel). Den äldre %p token (process-ID) stöds också för bakåtkompatibilitet.
--hangdump-timeout Anger varaktigheten utan aktivitet efter vilken en minnesdump genereras. Tidsgränsvärdet anges i något av följande format:
1.5h, 1.5hour, 1.5hours
90m, 90min, , 90minute90minutes
5400s, 5400sec, , 5400second5400seconds
500ms, 500mil, , 500millisecond500milliseconds
1d, 1day, 1days. Ett tomt tal (utan suffix) tolkas som millisekunder. Standardinställningen är 30m (30 minuter).
--hangdump-type Anger typen av dump. Giltiga värden är Mini, Heap, Full, Triage (inte tillgängligt i .NET Framework) och None. Standardinställningen är Full. Mer information finns i Typer av minidumpar. Värdet None är tillgängligt i MTP från och med version 2.1.0.
--hangdump-type-if-supported Samma som --hangdump-type, men faller tillbaka på den närmaste dumpningstyp som stöds, med ett informationsmeddelande, när den begärda typen inte är tillgänglig i den aktuella körningsmiljön. Till exempel stöds Triage endast på .NET (Core) och återgår till Mini på .NET Framework. Använd det här alternativet om du vill behålla samma kommandorad mellan CI-matriser som blandar .NET (Core) och .NET Framework. Giltiga värden är Mini, Heap, Full, Triageoch None. Ömsesidigt uteslutande med --hangdump-type. Finns i MTP från och med version 2.3.0.