Migrieren sie von Microsoft. Testing.Platform (MTP) v1 zu v2

Die stabile Version MTP v2 ist jetzt verfügbar. In diesem Migrationshandbuch erfahren Sie, was sich in MTP v2 geändert hat und wie Sie zu dieser Version migrieren können.

Breaking Changes in der Quelle

Dies sind Breaking Changes die nach der Migration zu Buildfehlern führen können.

Die nicht unterstützten Zielframeworks wurden entfernt.

Die Unterstützung für Zielframeworks von .NET Core 3.1 bis .NET 7 wird gelöscht. Die mindestens unterstützte .NET-Version ist .NET 8. Diese Änderung wirkt sich nicht auf .NET Framework aus. .NET Framework 4.6.2 ist weiterhin das mindest unterstützte .NET Framework-Ziel.

Veraltete Typen entfernt

Die folgenden Typen wurden in MTP v1 als veraltet gekennzeichnet. In MTP v2 werden sie vollständig entfernt:

  • ITestApplicationLifecycleCallbacks: verwenden Sie ITestHostApplicationLifetime stattdessen.
  • TestNodeFileArtifact: verwenden Sie FileArtifactProperty stattdessen.
  • KeyValuePairStringProperty: verwenden Sie TestMetadataProperty stattdessen.
  • TestSessionContext.Client: verwenden Sie IClientInfo stattdessen.

Diese bahnbrechende Änderung wirkt sich nicht auf typische Benutzer von Testframeworks aus. Dies betrifft nur Testframeworkautoren und Erweiterungsautoren.

API-Signaturänderungen

Diese bahnbrechende Änderung wirkt sich nicht auf typische Benutzer von Testframeworks aus. Dies betrifft nur Testframeworkautoren und Erweiterungsautoren.

Breaking Changes für Verhalten

Dies sind Breaking Changes, die das Verhalten zur Laufzeit beeinflussen können.

Kompatibilität mit VSTest-basierten dotnet test

Der dotnet test Befehl verfügt über zwei Implementierungen:

  • VSTest-basierte Implementierung: Dies war die einzige Implementierung bis .NET 9 SDK.
  • MTP-basierte Implementierung: Dies wurde ab .NET 10 SDK hinzugefügt.

Das Ausführen von MTP-Testprojekten mit dem .NET 10 SDK erfordert jetzt ein Opt-in für das MTP-basierte dotnet test und kann nicht mehr mit der VSTest-basierten Implementierung ausgeführt werden, die zuvor durch die TestingPlatformDotnetTestSupport MSBuild-Eigenschaft in MTP v1 aktiviert wurde.

Um die MTP-basierte Implementierung zu aktivieren, erstellen Sie die Datei global.json im Stammverzeichnis des Repositorys oder der Lösung (oder aktualisieren Sie die vorhandene global.json, falls eine solche bereits existiert), um den Test-Runner auf Microsoft.Testing.Platform festzulegen, wie im folgenden Beispiel gezeigt:

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

Wenn Sie versuchen, den VSTest-basierten dotnet test mit MTP v2 auszuführen, tritt der folgende Fehler auf:

Tests mit VSTest-Ziel werden von MTP unter .NET 10 SDK und höher nicht mehr unterstützt. Wenn Sie dotnet test verwenden, sollten Sie sich für die neue dotnet test experience entscheiden. Weitere Informationen finden Sie unter https://aka.ms/dotnet-test-mtp-error

Umbenennen von Befehlszeilenoptionen

  • Die --diagnostic-output-fileprefix Befehlszeilenoption wurde umbenannt in --diagnostic-file-prefix.
  • Die --diagnostic-filelogger-synchronouswrite Befehlszeilenoption wurde umbenannt in --diagnostic-synchronous-write.