Delen via


Microsoft.Testing.Platform gebruiken in de VSTest-modus van dotnet test

In dit artikel wordt uitgelegd hoe dotnet test wordt geïntegreerd voor Microsoft.Testing.Platform, dat wordt geleverd door Microsoft.Testing.Platform.MSBuild wanneer het wordt uitgevoerd in de VSTest-modus van dotnet test.

Voordat u in dit artikel ingaat, is het raadzaam om eerst testen te lezen met dotnet-test, waarin de twee modi ( dotnet test VSTest en MTP-modi) worden uitgelegd.

Maakt standaard dotnet test gebruik van VSTest om tests uit te voeren. Om ondersteuning voor Microsoft.Testing.Platform in dotnet test in te schakelen, hebt u twee opties:

  1. Gebruik de dotnet test VSTest-modus en specificeer de <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> MSBuild-eigenschap in uw projectbestand.
  2. Gebruik dotnet test in de MTP-modus voor meer systeemeigen ondersteuning van MTP in dotnet test, wat alleen wordt ondersteund vanaf de .NET 10 SDK.

Beide opties worden uitgebreid beschreven in het artikel Testen met dotnet-test .

Belangrijk

De rest van dit artikel is specifiek voor de VSTest-modus van dotnet test.

Waarschuwing

Vanaf .NET 10 SDK wordt aanbevolen om de VSTest-modus van dotnet test niet te gebruiken bij uitvoering met Microsoft.Testing.Platform.

Falingen per test weergeven

Standaard worden testfouten samengevat in een .log-bestand en wordt één fout per testproject gerapporteerd aan MSBuild.

Als u fouten per mislukte test wilt weergeven, geeft u -p:TestingPlatformShowTestsFailure=true op de opdrachtregel op of voegt u de eigenschap <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> toe aan het projectbestand.

Op de opdrachtregel:

dotnet test -p:TestingPlatformShowTestsFailure=true

Of in projectbestand:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>

  </PropertyGroup>

  <!-- ... -->

</Project>

Volledige platformuitvoer weergeven

Standaard wordt alle console-uitvoer van het onderliggende testprogramma vastgelegd en voor de gebruiker verborgen. Dit omvat de banner, versie-informatie en opgemaakte testgegevens.

Gebruik <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>om deze informatie samen met MSBuild-uitvoer weer te geven.

Deze optie heeft geen invloed op de manier waarop het testframework gebruikersuitvoer vastlegt die is geschreven door Console.WriteLine of andere vergelijkbare manieren om naar de console te schrijven.

Op de opdrachtregel:

dotnet test -p:TestingPlatformCaptureOutput=false

Of in projectbestand:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>

  </PropertyGroup>

  <!-- ... -->

</Project>

Belangrijk

Alle bovenstaande voorbeelden voegen eigenschappen toe, zoals EnableMSTestRunner, TestingPlatformDotnetTestSupporten TestingPlatformCaptureOutput in het csproj-bestand. Het wordt echter ten zeerste aanbevolen deze eigenschappen in te stellen in Directory.Build.props. Op die manier hoeft u het niet toe te voegen aan elk testprojectbestand en loopt u geen risico dat u een nieuw project introduceert dat deze eigenschappen niet instelt en uiteindelijk een oplossing krijgt waarbij sommige projecten VSTest zijn, terwijl andere Microsoft.Testing.Platform zijn, wat mogelijk niet correct werkt en niet wordt ondersteund.