Freigeben über


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 Microsoft.Testing.Platform vollständig aktivieren, indem Sie die Einstellung <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> in Ihrem Projekt angeben. Diese Einstellung deaktiviert VSTest und führt dank der transitiven Abhängigkeit zum Microsoft.Testing.Platform.MSBuild-NuGet-Paket direkt alle Microsoft.Testing.Platform-befähigten Tests in Ihrer Lösung 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 werden zusätzliche Parameter für die Ausführung nicht direkt über die Befehlszeile bereitgestellt. Sie müssen als MSBuild-Eigenschaft mit dem Namen TestingPlatformCommandLineArguments bereitgestellt werden:

dotnet test -p:TestingPlatformCommandLineArguments=" --minimum-expected-tests 10 "

Zusätzliche MSBuild-Optionen

Die MSBuild-Integration bietet Optionen, die im Benutzerprojekt 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 ein einzelner Fehler pro Testprojekt wird MSBuild gemeldet.

Um Fehler pro fehlgeschlagenem Test anzuzeigen, geben Sie -p:TestingPlatformShowTestsFailure=true in der Befehlszeile an, oder fügen Sie der Projektdatei Eigenschaft <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> 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>