Verwenden von Microsoft.Testing.Platform mit dotnet test
In diesem Artikel wird beschrieben, wie Sie dotnet test
bei Tests mit der Verwendung von Microsoft.Testing.Platform
ausführen und welche verschiedenen Optionen zum Konfigurieren der MSBuild-Ausgabe verfügbar sind, die beim Ausführen von Tests über Microsoft.Testing.Platform erzeugt werden.
In diesem Artikel wird gezeigt, wie Sie dotnet test
bei allen Tests in einer Projektmappe (*.sln) ausführen, die Microsoft.Testing.Platform
verwendet.
dotnet test
-Integration
Der dotnet test-Befehl ist eine Möglichkeit zum Ausführen von Tests aus Lösungen, Projekten oder bereits erstellten Assemblys. Microsoft.Testing.Platform ist in diese Infrastruktur eingebunden, um eine einheitliche Möglichkeit zum Ausführen von Tests zu bieten, insbesondere bei der Migration von VSTest zu Microsoft.Testing.Platform
.
dotnet test
-Integration – VSTest-Modus
Microsoft.Testing.Platform
bietet eine Kompatibilitätsschicht (VSTest Bridge), die nahtlos mit dotnet test
zusammenarbeiten kann.
Tests können ausgeführt werden, indem Sie Folgendes ausführen:
dotnet test
Diese Ebene führt Test über VSTest durch und integriert sie auf der VSTest Test Framework Adapter-Ebene.
dotnet test
: Microsoft.Testing.Platform-Modus
Standardmäßig wird VSTest zum Ausführen von Microsoft.Testing.Platform
-Tests verwendet. Sie können eine vollständige Microsoft.Testing.Platform
-Version aktivieren, indem Sie die Einstellung <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
in Ihrer Projektdatei angeben. Diese Einstellung deaktiviert VSTest und führt dank der transitiven Abhängigkeit vom NuGet-Paket Microsoft.Testing.Platform.MSBuild alle von Microsoft.Testing.Platform
unterstützten Testprojekte direkt in Ihrer Projektmappe aus. Es funktioniert nahtlos, wenn Sie ein direktes Microsoft.Testing.Platform
-Testprojekt übergeben.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<!-- Add this to your project file. -->
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
</PropertyGroup>
<!-- ... -->
</Project>
In diesem Modus können Sie wie folgt zusätzliche Parameter angeben, die zum Aufrufen der Testanwendung verwendet werden:
Microsoft.Testing.Platform
Ab Version 1.4 (enthalten in MSTest Version 3.6) können Sie Optionen nach dem doppelten Gedankenstrich--
in der Befehlszeile hinzufügen:dotnet test -- --minimum-expected-tests 10
Mithilfe der MSBuild-Eigenschaft
TestingPlatformCommandLineArguments
in der Befehlszeile:dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
Oder in der Projektdatei:
<PropertyGroup> ... <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments> </PropertyGroup>
Zusätzliche MSBuild-Optionen
Die MSBuild-Integration bietet Optionen, die in der Projektdatei oder über globale Eigenschaften in der Befehlszeile angegeben werden können, z. B -p:TestingPlatformShowTestsFailure=true
.
Dies sind die verfügbaren Optionen:
Fehler pro Test anzeigen
Standardmäßig werden Testfehler in einer LOG-Datei zusammengefasst, und pro Testprojekt wird ein einzelner Fehler an MSBuild gemeldet.
Wenn Sie Fehler pro fehlgeschlagenem Test anzeigen möchten, geben Sie in der Befehlszeile -p:TestingPlatformShowTestsFailure=true
an, oder fügen Sie Ihrer Projektdatei die <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
-Eigenschaft hinzu.
In der Befehlszeile:
dotnet test -p:TestingPlatformShowTestsFailure=true
Oder in der Projektdatei:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
Vollständige Plattformausgabe anzeigen
Standardmäßig wird die gesamte Konsolenausgabe, welche die zugrunde liegende ausführbare Testdatei schreibt, vom Benutzer erfasst und ausgeblendet. Dazu gehören Banner, Versionsinformationen und formatierte Testinformationen.
Um diese Informationen zusammen mit der MSBuild-Ausgabeverwendung anzuzeigen, verwenden Sie <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
.
Diese Option wirkt sich nicht darauf aus, wie das Testframework die Benutzerausgabe erfasst, die von Console.WriteLine
oder anderen ähnlichen Methoden zum Schreiben in die Konsole geschrieben wurde.
In der Befehlszeile:
dotnet test -p:TestingPlatformCaptureOutput=false
Oder in der Projektdatei:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>