Compartilhar via


Execução de teste com recarregamento frequente

As execuções de teste no Visual Studio envolvem a criação do projeto para atualizar os binários no disco antes de usar a Plataforma de Teste para executar seus testes. O tempo de build dentro do Visual Studio pode variar dependendo do tipo de alterações feitas no código. Para soluções maiores, os builds podem ser a parte mais cara da execução do teste. No Visual Studio 2022 e posterior, a execução de testes com hot reload pode ser habilitada para acelerar a execução, ignorando builds em cenários com suporte.

O que tem suporte?

  • Projetos C# e VB direcionados ao .NET 6.0 e superior
  • Testar projetos criados para a configuração de DEBUG
  • Visual Studio 2022 e superior

Habilitar a execução de teste com o recarregamento frequente

Habilite esta funcionalidade escolhendo Teste>Opções>"(Experimental) Habilitar Execuções de Teste com Recarga Dinâmica para projetos de teste de C# e VB direcionados ao .NET 6 e superior". Captura de tela do botão Habilitar Execuções de Teste com Recarregamento Dinâmico na página Opções de Teste do Visual Studio. Quando isso for selecionado, a execução dos testes usará o recarregamento dinâmico em cenários suportados

Por que é experimental?

Essa é uma nova maneira de testar a execução em que alteramos um caminho amplamente usado para validar o código. Também esperamos que a experiência do usuário em torno desse recurso mude à medida que recebemos mais comentários dos usuários. Por esses dois motivos, rotulamos esse recurso como "experimental".

Como funciona

Depois que a opção estiver habilitada, o Gerenciador de Testes usará automaticamente a execução de teste com recarregamento frequente quando possível. Se uma recarga frequente não for possível, ela retornará ao comportamento regular de compilar e executar testes. Como um usuário executando testes, você não precisa fazer nenhuma alteração no fluxo de trabalho (ou seja, continuar a editar código e executar testes).

Por trás das cenas, estamos usando a mesma infraestrutura Editar e Continuar que existe na experiência de Hot Reload recém-lançada para editar o código C#/VB em tempo de execução para determinar as alterações feitas. Por esse motivo, somente recarregamos rapidamente quando não há "edições rudes"; caso contrário, voltamos a compilar seus testes antes de executá-los. Para obter mais detalhes sobre edições com suporte, leia a documentação Editar e Continuar

Quanto mais rápido será a execução do teste?

Há muitas variáveis que entram em jogo ao estimar quanto tempo esse recurso irá salvá-lo. Por exemplo:

  • Quanto tempo leva o build do projeto.
  • Que tipo de edição foi feita.
  • Qual é o tamanho do arquivo em que a edição foi feita.
  • Onde a edição foi realizada (se era um projeto folha ou não).

Por fim, as melhorias de velocidade estarão diretamente relacionadas ao tempo de compilação que teria ocorrido nessa execução de teste específica.

Anotações

  • A primeira execução de teste depois de habilitar a opção ou abrir o Visual Studio incorrerá em um build de projeto.
  • Os arquivos no editor podem não ser salvos quando os testes são executados. Para resolvê-los e antes de fazer check-in, certifique-se de fazer um build completo (Ctrl+Shift+B).
  • Os binários no disco não são atualizados durante o recarregamento a quente da execução de testes.
  • A execução de teste recarregado a quente não funciona com "Test>Executar Todos os Testes", "Executar Todos os Testes na Exibição" no Gerenciador de Testes, nem funciona com Executar Todos os Testes a partir do nó da solução no Gerenciador de Soluções. O recurso não funciona com esses comandos porque eles atualmente garantem a criação de toda a solução.
  • Quando os testes com estruturas de destino sem suporte (inferiores ao .NET 6.0) são executados, ocorre um build de projeto.
  • Se você vir inconsistências entre o que está em disco e o que mostra o Gerenciador de Testes, considere uma solução/build de projeto usando Ctrl+Shift+B e execute testes. Qualquer build explícito substitui os resultados dos testes de recarga dinâmica pelos resultados regulares dos testes de compilação completa.

Problemas conhecidos

  • A execução de teste com recarregamento frequente não ocorre nos seguintes cenários:
    • Cobertura de código
    • Teste de Unidade ao Vivo
    • Perfil
    • Resolução de Erros
  • Os rastreamentos de pilha podem não ser legíveis com a presença de tokens ilegível. Esse problema está sendo acompanhado aqui e está planejado para uma correção no .NET 7.0
    • A solução alternativa recomendada nesse caso é criar seu projeto e executar novamente o teste.

Seus comentários são importantes

Conforme observado anteriormente, para que esse recurso experimental seja concluído, exigimos seus comentários. Se você tiver uma sugestão de como a experiência deve ser ou encontrar problemas, dedique um momento para relatar problemas para nós. Somente com seus comentários podemos garantir que problemas críticos sejam resolvidos e que as decisões futuras sejam priorizadas com base em sua entrada.

Para entrar em contato conosco, use o mecanismo de comentários do Visual Studio.