Crash- en hangdumps

Voor deze functies is het installeren van extra NuGet-pakketten vereist, zoals beschreven in elke sectie.

Aanbeveling

Wanneer u Microsoft.Testing.Platform.MSBuild gebruikt (inclusief transitief door MSTest, NUnit en xUnit runners), worden deze extensies automatisch geregistreerd wanneer u hun NuGet-pakketten installeert. Er zijn geen codewijzigingen nodig. De handmatige registratie die in dit artikel is opgegeven, is alleen vereist als u het automatisch gegenereerde toegangspunt hebt uitgeschakeld door de instelling in te stellen <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Crashdump

Met deze extensie kunt u een crashdumpbestand maken als het proces vastloopt. Voor deze extensie is het NuGet-pakket Microsoft.Testing.Extensions.CrashDump vereist.

Handmatige registratie

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

Opties

Optie Description
--crashdump Genereert een dumpbestand wanneer het testhostproces vastloopt. Ondersteund in .NET 6.0+.
--crashdump-filename Hiermee geeft u de bestandsnaam van de dump.
--crashdump-type Geeft het type van de dump aan. Geldige waarden zijn Mini, Heap, Triage en Full. Wordt standaard ingesteld op Full. Zie Typen minidumps voor meer informatie.
--crash-report [Alleen Linux/macOS] Genereert een JSON-crashrapport wanneer het testproces vastloopt. Combineer met --crashdump om ook een dumpbestand te genereren. Vereist .NET 7+ wanneer u alleen of .NET 6+ gebruikt in combinatie met --crashdump. Niet ondersteund op Windows omdat de .NET runtime de onderliggende DOTNET_EnableCrashReport en DOTNET_EnableCrashReportOnly omgevingsvariabelen negeert op Windows (dotnet/runtime#80191). Beschikbaar in MTP vanaf versie 2.3.0.
--crash-report-if-supported Hetzelfde als --crash-report maar genegeerd, met een informatief bericht, op platforms waarop het genereren van crashrapporten niet wordt ondersteund. Gebruik deze optie om dezelfde opdrachtregel over CI-matrices te houden die Windows bevatten. Wederzijds uitsluiten met --crash-report. Beschikbaar in MTP vanaf versie 2.3.0.
--crash-sequence Hiermee bepaalt u of een reeksbestand met de tests die zijn gestart en beëindigd tijdens de testsessie wordt gegenereerd naast de crashdump of het crashrapport. Het bestand maakt het mogelijk om de tests te identificeren die werden uitgevoerd op het moment van de crash zonder de dump te inspecteren. Geldige waarden zijn on (standaard; accepteert trueook , enableen 1) of off (accepteert falseook , disableen 0). Beschikbaar in MTP vanaf versie 2.3.0.

Waarschuwing

De extensie is niet compatibel met .NET Framework en wordt op de achtergrond genegeerd. Voor .NET Framework-ondersteuning schakelt u de postmortem-foutopsporing in met Sysinternals ProcDump. Zie Postmortem-foutopsporing inschakelen: Windows Sysinternals ProcDumpvoor meer informatie. De postmortem-foutopsporingsoplossing verzamelt ook crashinformatie voor processen voor .NET, zodat u het gebruik van de extensie kunt voorkomen als u zich richt op zowel .NET als .NET Framework-testtoepassingen.

Hangdump

Met deze extensie kunt u een dumpbestand maken na een bepaalde time-out. Voor deze extensie is het NuGet-pakket Microsoft.Testing.Extensions.HangDump vereist.

Handmatige registratie

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

Opties

Optie Description
--hangdump Genereert een dumpbestand voor het geval het testhostproces vastloopt.
--hangdump-filename Hiermee geeft u de bestandsnaam van de dump. Ondersteunt de volgende placeholders: {pname} (naam van de testtoepassing), {pid} (proces-id), {asm} (naam van de entry-assembly), {tfm} (doelframeworkaanduiding), en {time} (tijdstempel). Het verouderde %p token (proces-id) wordt ook ondersteund voor compatibiliteit met eerdere versies.
--hangdump-timeout Hiermee geeft u de duur van geen activiteit waarna de dump wordt gegenereerd. De time-outwaarde wordt opgegeven in een van de volgende indelingen:
1.5h, 1.5hour, 1.5hours
90m,90min,90minute,90minutes
5400s,5400sec,5400second,5400seconds
500ms,500mil,500millisecond,500milliseconds
1d, 1day, 1days. Een lege waarde (zonder achtervoegsel) wordt geïnterpreteerd als milliseconden. Standaard ingesteld op 30m (30 minuten).
--hangdump-type Geeft het type van de dump aan. Geldige waarden zijn Mini, Heap, Full, Triage (niet beschikbaar in .NET Framework) en None. Wordt standaard ingesteld op Full. Zie Typen minidumps voor meer informatie. De None waarde is beschikbaar in MTP vanaf versie 2.1.0.
--hangdump-type-if-supported Hetzelfde als --hangdump-type maar terugvalt, met een informatief bericht, naar het dichtstbijzijnde ondersteunde dumptype wanneer het aangevraagde type niet beschikbaar is in de huidige runtime. Triage wordt bijvoorbeeld alleen ondersteund op .NET (Core) en valt terug naar Mini in .NET Framework. Gebruik deze optie om dezelfde opdrachtregel over CI-matrices te houden die .NET (Core) en .NET Framework combineren. Geldige waarden zijnMini, , , Heapen FullTriageNone. Wederzijds uitsluiten met --hangdump-type. Beschikbaar in MTP vanaf versie 2.3.0.