Migrar da Microsoft. Testing.Platform (MTP) v1 para v2

A versão estável MTP v2 já está disponível. Este guia de migração explora o que mudou no MTP v2 e como pode migrar para esta versão.

Alterações disruptivas de código fonte

Essas são alterações de quebra que podem causar erros de compilação após a migração.

Estruturas de destino sem suporte descartadas

O suporte para frameworks de destino do .NET Core 3.1 ao .NET 7 foi descontinuado. A versão mínima suportada do .NET é o .NET 8. Essa alteração não afeta o .NET Framework. O .NET Framework 4.6.2 continua a ser o alvo mínimo suportado do .NET Framework.

Tipos obsoletos removidos

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

  • 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.

Esta mudança disruptiva não afeta os utilizadores típicos de frameworks de teste. Afeta apenas autores de estruturas de teste e autores de extensão.

Alterações na assinatura da API

Esta mudança disruptiva não afeta os utilizadores típicos de frameworks de teste. Afeta apenas autores de estruturas de teste e autores de extensão.

Mudanças de quebra de comportamento

Estas são alterações disruptivas que podem afetar o comportamento em tempo de execução.

Compatibilidade com VSTest-based dotnet test

O dotnet test comando tem duas implementações:

  • Implementação baseada em VSTest: esta 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 a aceitação da implementação baseada dotnet test em MTP e não pode mais ser executada com a implementação baseada em VSTest, que anteriormente era habilitada pela TestingPlatformDotnetTestSupport propriedade 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 já tiver uma), para que o executor de teste seja definido como Microsoft.Testing.Platform, conforme mostrado no exemplo a seguir:

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

Tentar executar o VSTest-based dotnet test com MTP v2 produzirá o seguinte erro:

Os testes com o alvo VSTest já não são suportados pelo MTP no SDK .NET 10 e posteriores. Se você usar o teste dotnet, você deve optar pela nova experiência de teste dotnet. Para mais informações, consulte 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.