Eseguire la migrazione da Microsoft. Test.Platform (MTP) da v1 a v2

La versione stabile MTP v2 è ora disponibile. Questa guida alla migrazione illustra le modifiche apportate in MTP v2 e come eseguire la migrazione a questa versione.

Modifiche che interrompono la compatibilità del codice sorgente

Si tratta di modifiche che potrebbero causare errori di compilazione dopo la migrazione.

Sono stati eliminati i framework di destinazione non supportati

Il supporto per i framework di destinazione da .NET Core 3.1 a .NET 7 viene eliminato. La versione minima supportata di .NET è .NET 8. Questa modifica non influisce su .NET Framework. .NET Framework 4.6.2 continua a essere il target minimo supportato di .NET Framework.

Rimossi i tipi obsoleti

I tipi seguenti sono stati contrassegnati come obsoleti in MTP v1. In MTP v2 vengono rimossi completamente:

  • ITestApplicationLifecycleCallbacks: usare ITestHostApplicationLifetime invece .
  • TestNodeFileArtifact: usare FileArtifactProperty invece .
  • KeyValuePairStringProperty: usare TestMetadataProperty invece .
  • TestSessionContext.Client: usare IClientInfo invece .

Questa modifica radicale non influisce sugli utenti tipici dei framework di test. Influisce solo sugli autori del framework di test e sugli autori di estensioni.

Modifiche alla firma API

Questa modifica radicale non influisce sugli utenti tipici dei framework di test. Influisce solo sugli autori del framework di test e sugli autori di estensioni.

Modifiche che causano un'interruzione del comportamento

Si tratta di modifiche significative che potrebbero influire sul comportamento del sistema durante l'esecuzione.

Compatibilità basata su VSTest dotnet test

Il dotnet test comando ha due implementazioni:

  • Implementazione basata su VSTest: questa era l'unica implementazione fino a .NET 9 SDK.
  • Implementazione basata su MTP: aggiunta a partire da .NET 10 SDK.

L'esecuzione di progetti di test MTP con .NET 10 SDK richiede ora il consenso esplicito per l'uso basato su dotnet test MTP e non può più essere eseguita con l'implementazione basata su VSTest, abilitata in precedenza dalla TestingPlatformDotnetTestSupport proprietà MSBuild in MTP v1.

Per acconsentire esplicitamente all'implementazione basata su MTP, creare global.json nella radice del repository o della soluzione (o aggiornare l'global.json esistente se ne è già disponibile uno), per avere lo strumento di esecuzione di test impostato su Microsoft.Testing.Platform, come illustrato nell'esempio seguente:

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

Se si tenta di eseguire VSTest dotnet test con MTP v2, verrà generato l'errore seguente:

Il test con la destinazione VSTest non è più supportato da MTP in .NET 10 SDK e versioni successive. Se si usa il test dotnet, è necessario acconsentire esplicitamente alla nuova esperienza di test dotnet. Per altre informazioni, vedere https://aka.ms/dotnet-test-mtp-error

Rinominare le opzioni della riga di comando

  • L'opzione --diagnostic-output-fileprefix della riga di comando è stata rinominata in --diagnostic-file-prefix.
  • L'opzione --diagnostic-filelogger-synchronouswrite della riga di comando è stata rinominata in --diagnostic-synchronous-write.