Partilhar via


Execução de testes com recarga a quente

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 compilação dentro do Visual Studio pode variar dependendo do tipo de alterações feitas no código. Para soluções maiores, as compilações podem ser a parte mais cara da execução do teste. No Visual Studio 2022 e posteriores, a execução de testes com hot reload pode ser ativada para acelerar a execução dos testes, ignorando as compilações para cenários com suporte.

O que é suportado?

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

Habilite a execução de testes com Hot Reload

Habilite esse recurso escolhendo Teste>Opções>"(Experimental) Habilitar testes com recarga dinâmica para projetos de teste C# e VB visando o .NET 6 ou superior". Captura de tela do botão Habilitar Execuções de Teste Recarregadas a Quente na página Opções de Teste do Visual Studio. Quando isso for selecionado, a execução dos testes usará a recarga a quente para cenários suportados

Porque é Experimental?

Esta é uma nova maneira de execução de teste onde alteramos um caminho amplamente utilizado de validação de código. Também esperamos que a experiência do usuário em torno desse recurso mude à medida que recebemos mais feedback dos usuários. Por estas duas razões, atualmente rotulamos esse recurso como "experimental".

Como funciona

Quando a opção estiver ativada, o Test Explorer usará automaticamente a execução de teste com recarga a quente quando possível. Se uma recarga a quente não for possível, ela voltará ao comportamento regular de construção e execução de testes. Como um usuário executando testes, você não precisa fazer nenhuma alteração no seu fluxo de trabalho (ou seja, continuar a editar código e executar testes).

Nos bastidores, estamos usando a mesma infraestrutura Edit and Continue que existe na recém-lançada experiência Hot Reload para editar código C#/VB em tempo de execução para determinar as alterações feitas. Por esta razão, fazemos recarregamento automático apenas quando não há "edições significativas", caso em que voltamos a construir os testes antes de executá-los. Para obter mais detalhes sobre as edições suportadas, leia a documentação Editar e Continuar

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

Há muitas variáveis que entram em jogo ao estimar quanto tempo esse recurso economizará você. Por exemplo:

  • Quanto tempo demora a construção do projeto.
  • Que tipo de edição foi feita.
  • Qual é o tamanho do arquivo onde a edição foi feita.
  • Onde foi feita a edição (se foi um projeto folha ou não).

Em última análise, as melhorias de velocidade estarão diretamente relacionadas com o tempo de compilação que teria ocorrido naquela execução de teste específica.

Observações

  • A primeira execução de teste depois de habilitar a opção ou abrir o Visual Studio incorrerá em uma compilação de projeto.
  • Os arquivos no editor não podem ser salvos quando os testes são executados. Para resolvê-los e antes de fazer check-in, certifique-se de fazer uma compilação completa (Ctrl+Shift+B).
  • Os binários no disco não são atualizados quando ocorre a execução do teste com recarga dinâmica.
  • A execução de teste com recarregamento dinâmico não funciona com "Test>Run All Tests", "Run All Tests in View" no Test Explorer, nem funciona com Run All Tests do nó da solução no Solution Explorer. O recurso não funciona com esses comandos porque eles atualmente garantem a construção de toda a solução.
  • Quando testes com estruturas de destino sem suporte (inferiores ao .NET 6.0) são executados, ocorre uma compilação de projeto.
  • Se você vir alguma inconsistência entre o que está no disco e o que o Test Explorer mostra, considere uma compilação de solução/projeto usando Ctrl+Shift+B e, em seguida, execute testes. Qualquer compilação explícita substitui os resultados do teste de recarga a quente pelos resultados regulares do teste de compilação completa.

Problemas conhecidos

  • A execução do teste com recarga a quente não ocorre nos seguintes cenários:
    • Cobertura de código
    • Teste de unidade ao vivo
    • Perfilagem
    • Depuração de código
  • Os traços de pilha podem não ser legíveis devido à presença de tokens ilegíveis. Esse problema está sendo rastreado aqui e está planejado para uma correção no .NET 7.0
    • A solução alternativa recomendada neste caso é criar seu projeto e executar novamente o teste.

Os seus comentários são importantes

Como mencionado anteriormente, para que este recurso experimental esteja completo, precisamos do seu feedback. Se você tiver uma sugestão de como a experiência deve ser, ou encontrar quaisquer problemas, por favor, reserve um momento para relatar problemas para nós. Somente com o seu feedback podemos garantir que os problemas críticos sejam resolvidos e as decisões futuras sejam priorizadas com base em suas contribuições.

Para entrar em contato conosco, use o mecanismo de feedback do Visual Studio.