Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
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-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
.
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å.
Som standard använder dotnet test
VSTest-beteende för att köra tester. Du kan aktivera stöd för Microsoft.Testing.Platform
i dotnet test
genom att ange inställningen <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
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>
<!-- Add this to your project file. -->
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
</PropertyGroup>
<!-- ... -->
</Project>
Anteckning
Vi rekommenderar starkt att du anger egenskapen TestingPlatformDotnetTestSupport
i Directory.Build.props
. På så sätt behöver du inte lägga till den i varje testprojektfil och du riskerar inte att introducera ett nytt projekt som inte anger den här egenskapen och som får en lösning där vissa projekt är VSTest medan andra är Microsoft.Testing.Platform, som kanske inte fungerar korrekt och inte stöds.
Viktigt
Trots att TestingPlatformDotnetTestSupport
är inställt på true
är de flesta kommandoradsvalen definierade i kommandot dotnet test fortfarande VSTest-orienterade och påverkar inte tester baserade på Microsoft.Testing.Platform
. Om du vill ange argument till Microsoft.Testing.Platform
måste du använda någon av metoderna som beskrivs i kommandoradsargumenten Microsoft.Testing.Platform med dotnet-test.
I listan nedan beskrivs alla dotnet test
kommandoradsalternativ som stöds av Microsoft.Testing.Platform
:
-a|--arch <ARCHITECTURE>
--artifacts-path <ARTIFACTS_DIR>
-c|--configuration <CONFIGURATION>
-f|--framework <FRAMEWORK>
-e|--environment <NAME="VALUE">
--interactive
--no-build
--nologo
--no-restore
-o|--output <OUTPUT_DIRECTORY>
--os <OS>
-r|--runtime <RUNTIME_IDENTIFIER>
-v|--verbosity <LEVEL>
Dessa argument stöds eftersom de är länkade till byggsteget och är oberoende av den testplattform som används.
Du kan ange argument 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>
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:
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>
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.
Om du vill visa den här informationen tillsammans med MSBuild-utdata använder du <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>
Viktigt
Alla exempel ovan lägger till egenskaper som EnableMSTestRunner
, TestingPlatformDotnetTestSupport
och TestingPlatformCaptureOutput
i csproj-filen. Vi rekommenderar dock starkt att du anger dessa egenskaper i Directory.Build.props
. På så sätt behöver du inte lägga till den i varje testprojektfil, och du riskerar inte att introducera ett nytt projekt som inte anger dessa egenskaper och får en lösning där vissa projekt är VSTest medan andra är Microsoft.Testing.Platform, som kanske inte fungerar korrekt och inte stöds.
Feedback om .NET
.NET är ett öppen källkod projekt. Välj en länk för att ge feedback:
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
C#-testning i Visual Studio - Training
Börja testa dina C#-appar med hjälp av testverktygen i Visual Studio. Lär dig att skriva tester, använda Test Explorer, skapa testpaket och tillämpa det röda, gröna refaktormönstret för att skriva kod.