Migre de Microsoft. Testing.Platform (MTP) v1 a v2

A versão estável MTP v2 agora está disponível. Este guia de migração explora o que foi alterado no MTP v2 e como você pode migrar para essa versão.

Mudanças significativas na origem

Estas são mudanças disruptivas que podem causar erros de compilação após a migração.

Estruturas de destino sem suporte descartadas

O suporte para estruturas de destino do .NET Core 3.1 até o .NET 7 foi descontinuado. A versão mínima do .NET com suporte é o .NET 8. Essa alteração não afeta o .NET Framework. O .NET Framework 4.6.2 continua sendo a versão mínima do .NET Framework com suporte.

Tipos obsoletos removidos

Os tipos a seguir foram marcados como obsoletos no MTP v1. No MTP v2, eles são completamente removidos:

  • ITestApplicationLifecycleCallbacks: use ITestHostApplicationLifetime em vez disso.
  • TestNodeFileArtifact: use FileArtifactProperty em vez disso.
  • KeyValuePairStringProperty: use TestMetadataProperty em vez disso.
  • TestSessionContext.Client: use IClientInfo em vez disso.

Essa mudança disruptiva não afeta usuários típicos de frameworks de teste. Ele afeta apenas autores da estrutura de teste e autores de extensão.

Alterações na assinatura da API

Essa mudança disruptiva não afeta usuários típicos de frameworks de teste. Ele afeta apenas autores da estrutura de teste e autores de extensão.

Alterações interruptivas de comportamento

Essas são alterações radicais que podem impactar o comportamento em tempo de execução.

Compatibilidade com base em VSTest dotnet test

O dotnet test comando tem duas implementações:

  • Implementação baseada em VSTest: essa foi a única implementação até o SDK do .NET 9.
  • Implementação baseada em MTP: isso foi adicionado a partir do SDK do .NET 10.

A execução de projetos de teste MTP com o SDK do .NET 10 agora requer optar pela utilização do MTP baseado em dotnet test e não pode mais ser realizada na implementação baseada em VSTest, que anteriormente era habilitada pela propriedade TestingPlatformDotnetTestSupport MSBuild no MTP v1.

Para aceitar a implementação baseada em MTP, crie global.json no repositório ou na raiz da solução (ou atualize global.json existentes, se você já tiver um), para ter o executor de teste definido como Microsoft.Testing.Platform, conforme mostrado no exemplo a seguir:

{
  "test": {
    "runner": "Microsoft.Testing.Platform"
  }
}

A tentativa de executar o VSTest baseado em dotnet test MTP v2 produzirá o seguinte erro:

Os testes com o alvo VSTest não são mais compatíveis com o MTP no SDK do .NET 10 e versões posteriores. Se você usa o dotnet test, deve ativar a nova experiência do dotnet test. Para obter mais informações, veja https://aka.ms/dotnet-test-mtp-error

Renomear opções de linha de comando

  • A --diagnostic-output-fileprefix opção de linha de comando foi renomeada para --diagnostic-file-prefix.
  • A --diagnostic-filelogger-synchronouswrite opção de linha de comando foi renomeada para --diagnostic-synchronous-write.