Despejos de falhas e travamentos:

Esses recursos exigem a instalação de pacotes NuGet adicionais, conforme descrito em cada seção.

Dica

Ao usar o Microsoft.Testing.Platform.MSBuild (incluído transitivamente por MSTest, NUnit e xUnit runners), essas extensões são registradas automaticamente quando você instala seus pacotes NuGet , sem necessidade de alterações de código. O registro manual especificado neste artigo só será necessário se você desabilitar o ponto de entrada gerado automaticamente definindo <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Despejo de memória

Essa extensão permite que você crie um arquivo de despejo de memória se o processo falhar. Essa extensão requer o pacote NuGet Microsoft.Testing.Extensions.CrashDump .

Registro manual

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

Opções

Opção DESCRIÇÃO
--crashdump Gera um arquivo de despejo quando o processo de host de teste falha. Com suporte no .NET 6.0+.
--crashdump-filename Especifica o nome do arquivo do despejo.
--crashdump-type Especifica o tipo do despejo. Os valores válidos são Mini, Heap, Triage e Full. Usa Full como padrão. Para obter mais informações, confira Tipos de mini despejos.
--crash-report [Somente Linux/macOS] Gera um relatório de falha JSON quando o processo de teste falha. Combine com --crashdump para também gerar um arquivo de despejo. Requer .NET 7+ quando usado sozinho ou .NET 6+ quando combinado com --crashdump. Não há suporte no Windows porque o runtime do .NET ignora as variáveis de ambiente DOTNET_EnableCrashReport e DOTNET_EnableCrashReportOnly subjacentes em Windows (dotnet/runtime#80191). Disponível no MTP a partir da versão 2.3.0.
--crash-report-if-supported Igual a --crash-report, mas ignorado, com uma mensagem informativa, em plataformas onde não há suporte à geração de relatórios de falha. Use essa opção para manter a mesma linha de comando entre matrizes de CI que incluem Windows. Mutuamente excludente com --crash-report. Disponível no MTP a partir da versão 2.3.0.
--crash-sequence Controla se um arquivo de sequência com a lista dos testes que foram iniciados e encerrados durante a sessão de teste é gerado junto com o despejo de memória ou o relatório de falha. O arquivo possibilita identificar os testes que estavam em execução no momento da falha sem inspecionar o despejo. Os valores válidos são on (padrão; também aceita true, enablee 1) ou off (também aceita false, disablee 0). Disponível no MTP a partir da versão 2.3.0.

Cuidado

A extensão não é compatível com .NET Framework e será ignorada silenciosamente. Para oferecer suporte ao .NET Framework, você habilita a depuração post-mortem com o Sysinternals ProcDump. Para obter mais informações, consulte Ativando a Depuração Post-mortem: Window Sysinternals ProcDump. A solução de depuração post-mortem também coletará informações sobre falhas de processo para o .NET, para que você possa evitar o uso da extensão se estiver direcionando tanto aplicativos de teste .NET quanto .NET Framework.

Despejo de travamento

Essa extensão permite que você crie um arquivo de despejo após um determinado tempo limite. Essa extensão requer o pacote NuGet Microsoft.Testing.Extensions.HangDump .

Registro manual

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

Opções

Opção DESCRIÇÃO
--hangdump Gera um arquivo de despejo caso o processo de host de teste se encontre travado.
--hangdump-filename Especifica o nome do arquivo do despejo. Oferece suporte aos seguintes marcadores: {pname} (nome do aplicativo de teste), {pid} (ID do processo), {asm} (nome do assembly de entrada), {tfm} (moniker do framework de destino) e {time} (carimbo de data e hora). O token herdado %p (ID do processo) também tem suporte para compatibilidade com versões anteriores.
--hangdump-timeout Especifica a duração de inatividade após a qual o despejo é gerado. O valor do tempo limite é especificado em um dos seguintes formatos:
1.5h 1.5hour, 1.5hours
90m, 90min, , 90minute90minutes
5400s, 5400sec, , 5400second5400seconds
500ms, 500mil, , 500millisecond500milliseconds
1d, 1day. 1days. Um número nu (sem sufixo) é interpretado como milissegundos. O padrão é 30m (30 minutos).
--hangdump-type Especifica o tipo do despejo. Os valores válidos são Mini, Heap, Full, Triage (não disponível no .NET Framework) e None. Usa Full como padrão. Para obter mais informações, confira Tipos de mini despejos. O None valor está disponível no MTP a partir da versão 2.1.0.
--hangdump-type-if-supported Igual a --hangdump-type, mas recorre, com uma mensagem informativa, ao tipo de dump compatível mais próximo quando o tipo solicitado não está disponível no ambiente de execução atual. Por exemplo, Triage só tem suporte no .NET (Core) e volta para Mini no .NET Framework. Use essa opção para manter a mesma linha de comando entre matrizes de CI que combinam .NET (Core) e .NET Framework. Os valores válidos são Mini, , Heap, Full, Triagee None. Mutuamente excludente com --hangdump-type. Disponível no MTP a partir da versão 2.3.0.