Dela via


Använda Microsoft.Testing.Platform med dotnet test

Den här artikeln beskriver hur du använder dotnet test för att köra tester när du använder Microsoft.Testing.Platform, och de olika alternativ som är tillgängliga för att konfigurera MSBuild-utdata som genereras när du kör tester via Microsoft.Testing.Platform.

Den här artikeln visar hur du använder dotnet test för att köra alla tester i en lösning (*.sln) som använder Microsoft.Testing.Platform.

dotnet test integration

Dotnet-testkommandot är ett sätt att köra tester från lösningar, projekt eller redan skapade sammansättningar. Microsoft.Testing.Platform ansluter till den här infrastrukturen för att ge ett enhetligt sätt att köra tester, särskilt när du migrerar från VSTest till Microsoft.Testing.Platform.

dotnet test integration – VSTest-läge

Microsoft.Testing.Platform ger ett kompatibilitetslager (VSTest Bridge) att arbeta sömlöst med dotnet test .

Tester kan köras genom att köra:

dotnet test

Det här lagret kör test via VSTest och integreras med det på VSTest Test Framework-adapternivå.

dotnet test – Microsoft.Testing.Platform-läge

Som standard används VSTest för att köra Microsoft.Testing.Platform tester. Du kan aktivera en fullständig Microsoft.Testing.Platform genom att ange inställningen <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> i projektfilen. Den här inställningen inaktiverar VSTest och kör, tack vare det transitiva beroendet av NuGet-paketet Microsoft.Testing.Platform.MSBuild , direkt alla Microsoft.Testing.Platform bemyndigade testprojekt i din lösning. Det fungerar sömlöst om du klarar ett direkt Microsoft.Testing.Platform testprojekt.

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

I det här läget kan du ange extra parametrar som används för att anropa testprogrammet på något av följande sätt:

  • Från och med Microsoft.Testing.Platform version 1.4 (ingår i MSTest version 3.6) kan du lägga till alternativ efter dubbelstrecket -- på kommandoraden:

    dotnet test -- --minimum-expected-tests 10
    
  • Genom att TestingPlatformCommandLineArguments använda egenskapen MSBuild på kommandoraden:

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

    Eller i projektfilen:

    <PropertyGroup>
      ...
      <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
    </PropertyGroup>
    

Ytterligare MSBuild-alternativ

MSBuild-integreringen innehåller alternativ som kan anges i projektfilen eller via globala egenskaper på kommandoraden, till exempel -p:TestingPlatformShowTestsFailure=true.

Det här är de tillgängliga alternativen:

Visa fel per test

Som standard sammanfattas testfel i en .log fil och ett enskilt fel per testprojekt rapporteras till MSBuild.

Om du vill visa fel per misslyckat test anger du -p:TestingPlatformShowTestsFailure=true på kommandoraden eller lägger till egenskapen i <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> projektfilen.

På kommandoraden:

dotnet test -p:TestingPlatformShowTestsFailure=true

Eller i projektfilen:

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

Visa fullständiga plattformsutdata

Som standard samlas alla konsolutdata som den underliggande körbara testskrivningen insamlas och döljs från användaren. Detta inkluderar banderoll, versionsinformation och formaterad testinformation.

För att visa den här informationen tillsammans med MSBuild-utdataanvändning<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>.

Det här alternativet påverkar inte hur testramverket samlar in användarutdata som skrivits av Console.WriteLine eller andra liknande sätt att skriva till konsolen.

På kommandoraden:

dotnet test -p:TestingPlatformCaptureOutput=false

Eller i projektfilen:

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