Despejos de colisão e suspensão

Estas funcionalidades exigem a instalação de pacotes NuGet adicionais, conforme descrito em cada secção.

Sugestão

Ao usar o Microsoft.Testing.Platform.MSBuild (incluído de forma transitiva pelos runners MSTest, NUnit e xUnit), estas extensões são registadas automaticamente quando instala os seus pacotes NuGet — não são necessárias alterações de código. O registo manual especificado neste artigo só é obrigatório se desativar o ponto de entrada gerado automaticamente ao definir <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Relatório de falha

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

Registo manual

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

Opções

Opção Description
--crashdump Gera um arquivo de despejo quando o processo do host de teste falha. Suportado em .NET 6.0+.
--crashdump-filename Especifica o nome do arquivo do dump.
--crashdump-type Especifica o tipo de despejo. Os valores válidos são Mini, Heap, Triage e Full. O valor padrão é Full. Para obter mais informações, consulte Tipos de minidumps.
--crash-report [Apenas Linux/macOS] Gera um relatório de falha JSON quando o processo de teste falha. Combina com --crashdump para também gerar um ficheiro de dump. Requer .NET 7+ quando usado sozinho ou .NET 6+ quando combinado com --crashdump. Não é suportado no Windows porque o runtime de .NET ignora as variáveis de ambiente subjacentes DOTNET_EnableCrashReport e DOTNET_EnableCrashReportOnly no Windows (dotnet/runtime#80191). Disponível em MTP a partir da versão 2.3.0.
--crash-report-if-supported Igual a --crash-report, mas ignorado, com uma mensagem informativa, nas plataformas em que a geração de relatórios de falhas não é suportada. Use esta opção para manter a mesma linha de comandos entre matrizes CI que incluem o Windows. Mutuamente exclusivo com --crash-report. Disponível em MTP a partir da versão 2.3.0.
--crash-sequence Controla se um ficheiro de sequência que lista os testes iniciados e terminados durante a sessão de teste é gerado juntamente com o dump de falhas ou o relatório de falhas. O ficheiro permite identificar os testes que estavam a correr no momento do crash sem inspecionar o dump. Os valores válidos são on (padrão; também aceita true, enable, e 1) ou off (também aceita false, disable, e 0). Disponível em MTP a partir da versão 2.3.0.

Atenção

A extensão não é compatível com o .NET Framework e será silenciosamente ignorada. Para suporte ao .NET Framework, ativas a depuração pós-morte com o Sysinternals ProcDump. Para obter mais informações, consulte Ativando a depuração postmortem: Windows Sysinternals ProcDump. A solução de depuração post-mortem também recolherá informações sobre falhas de processos para o .NET, para que possa evitar o uso da extensão caso esteja a direcionar aplicações de teste tanto para .NET como para .NET Framework.

Pendurar despejo

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

Registo manual

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

Opções

Opção Description
--hangdump Gera um arquivo de despejo caso o processo do host de teste trave.
--hangdump-filename Especifica o nome do arquivo do dump. Suporta os seguintes marcadores de posição: {pname} (nome da aplicação de teste), {pid} (ID do processo), {asm} (nome da assembleia da entrada), {tfm} (nome do framework alvo) e {time} (carimbo temporal). O token legado %p (ID de processo) também é suportado para compatibilidade retroativa.
--hangdump-timeout Especifica a duração da ausência de atividade após a qual o dump é gerado. O valor de tempo limite é especificado em um dos seguintes formatos:
1.5h, 1.5hour, 1.5hours
90m, 90min, 90minute, 90minutes
5400s, 5400sec, 5400second, 5400seconds
500ms, 500mil, 500millisecond, 500milliseconds
1d, 1day, 1days. Um número simples (sem sufixo) é interpretado como milissegundos. Por padrão, é 30m (30 minutos).
--hangdump-type Especifica o tipo de despejo. Os valores válidos são Mini, Heap, Full, Triage (não disponível no .NET Framework) e None. O valor padrão é Full. Para obter mais informações, consulte Tipos de minidumps. O None valor está disponível no MTP a partir da versão 2.1.0.
--hangdump-type-if-supported Igual que --hangdump-type , mas retorna, com uma mensagem informativa, ao tipo de dump suportado mais próximo quando o tipo solicitado não está disponível no tempo de execução atual. Por exemplo, Triage só é suportado no .NET (Core) e volta a Mini no .NET Framework. Use esta opção para manter a mesma linha de comandos entre matrizes CI que misturam .NET (Core) e .NET Framework. Os valores válidos são Mini, Heap, Full, Triage, e None. Mutuamente exclusivo com --hangdump-type. Disponível em MTP a partir da versão 2.3.0.