Migrera från Microsoft. Testing.Platform (MTP) v1 till v2

Den stabila versionen MTP v2 är nu tillgänglig. Den här migreringsguiden utforskar vad som har ändrats i MTP v2 och hur du kan migrera till den här versionen.

Icke-bakåtkompatibla källändringar

Det här är icke-bakåtkompatibla ändringar som kan orsaka byggfel efter migreringen.

Borttagna målramverk som inte stöds

Stöd för målramverk från .NET Core 3.1 till .NET 7 tas bort. Den lägsta .NET-versionen som stöds är .NET 8. Den här ändringen påverkar inte .NET Framework. .NET Framework 4.6.2 är fortfarande det lägsta .NET Framework-målet som stöds.

Föråldrade typer har tagits bort

Följande typer har markerats som föråldrade i MTP v1. I MTP v2 tas de bort helt:

  • ITestApplicationLifecycleCallbacks: använd ITestHostApplicationLifetime i stället.
  • TestNodeFileArtifact: använd FileArtifactProperty i stället.
  • KeyValuePairStringProperty: använd TestMetadataProperty i stället.
  • TestSessionContext.Client: använd IClientInfo i stället.

Den här icke-bakåtkompatibla ändringen påverkar inte vanliga användare av testramverk. Det påverkar bara testramverksförfattare och tilläggsförfattare.

Ändringar i API-signatur

Den här icke-bakåtkompatibla ändringen påverkar inte vanliga användare av testramverk. Det påverkar bara testramverksförfattare och tilläggsförfattare.

Beteendebrytande ändringar

Det här är brytningsändringar som kan påverka beteendet under körning.

Kompatibilitet med VSTest-baserad dotnet test

Kommandot dotnet test har två implementeringar:

  • VSTest-baserad implementering: det här var den enda implementeringen upp till .NET 9 SDK.
  • MTP-baserad implementering: detta lades till med början i .NET 10 SDK.

Att köra MTP-testprojekt med .NET 10 SDK kräver nu att du väljer MTP-baserade dotnet test och kan inte längre köras med implementeringen baserad på VSTest, som tidigare aktiverades genom MSBuild-egenskapen TestingPlatformDotnetTestSupport i MTP v1.

Om du vill välja den MTP-baserade implementeringen skapar du global.json i lagringsplatsen eller lösningsroten (eller uppdaterar befintliga global.json om du redan har en) så att testkörare har angetts som Microsoft.Testing.Platform, som du ser i följande exempel:

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

Om du försöker köra VSTest-baserat dotnet test med MTP v2 uppstår följande fel:

Testning med VSTest-mål stöds inte längre av MTP på .NET 10 SDK och senare. Om du använder dotnet-test bör du anmäla dig till den nya dotnet-testupplevelsen. För mer information, se https://aka.ms/dotnet-test-mtp-error

Byt namn på kommandoradsalternativ

  • Kommandoradsalternativet --diagnostic-output-fileprefix har bytt namn till --diagnostic-file-prefix.
  • Kommandoradsalternativet --diagnostic-filelogger-synchronouswrite har bytt namn till --diagnostic-synchronous-write.