Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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: useITestHostApplicationLifetimeem vez disso. -
TestNodeFileArtifact: useFileArtifactPropertyem vez disso. -
KeyValuePairStringProperty: useTestMetadataPropertyem vez disso. -
TestSessionContext.Client: useIClientInfoem 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
- Um
CancellationTokenparâmetro foi adicionado ao IOutputDevice.DisplayAsync(IOutputDeviceDataProducer, IOutputDeviceData). - Os métodos na ITestSessionLifetimeHandler interface são alterados para incluir um parâmetro
ITestSessionContextem vez de ambos os parâmetros SessionUid e CancellationToken. -
IDataConsumeré movido deMicrosoft.Testing.Platform.Extensions.TestHostnamespace paraMicrosoft.Testing.Platform.Extensions.
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-fileprefixopção de linha de comando foi renomeada para--diagnostic-file-prefix. - A
--diagnostic-filelogger-synchronouswriteopção de linha de comando foi renomeada para--diagnostic-synchronous-write.