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 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>