Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tips/Råd
Innan du väljer en runner-konfiguration kan du läsa Översikt över testplattformar.
Det finns flera sätt att köra MSTest-tester beroende på dina behov. Du kan köra tester från en IDE (till exempel Visual Studio, Visual Studio Code eller JetBrains Rider) eller från kommandoraden eller från en CI-tjänst (till exempel GitHub Actions eller Azure DevOps).
Tidigare förlitade sig MSTest på VSTest för att köra tester i alla kontexter, men från och med version 3.2.0 har MSTest sin egen testlöpare. Den här nya löparen är enklare och snabbare än VSTest, och det är det rekommenderade sättet att köra MSTest-tester.
VSTest vs MTP
MSTest stöder körning av tester med både VSTest och Microsoft.Testing.Platform (MTP). Stödet för MTP drivs av MSTest-löparen, som kan köra tester i alla kontexter (till exempel kontinuerlig integrering (CI) pipelines, CLI, Visual Studio Test Explorer och VS Code Text Explorer). MSTest-löparen är inbäddad direkt i dina MSTest-testprojekt, och det finns inga andra appberoenden, som vstest.console eller dotnet test, som behövs för att köra dina tester. Du kan dock fortfarande köra dina tester med .dotnet test
MSTest-löparen är open-source och bygger på biblioteket MTP. Du hittar Microsoft.Testing.Platform-kod på lagringsplatsen microsoft/testfx GitHub. MSTest-testverktyget levereras med MSTest in 3.2.0 eller senare.
Aktivera MTP i ett MSTest-projekt
Använd MSTest SDK för att förenkla projektkonfigurationen, versionshanteringen och justeringen av MTP och dess tillägg avsevärt.
MSTest.Sdk ersätter Microsoft.NET.Sdk som projektets SDK, och MTP är aktiverat som standard:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Note
MSTest.Sdk fungerar bara när projektet kan använda Microsoft.NET.Sdk som bas-SDK. Om ditt projekt kräver ett annat SDK, ersätt inte värdet för <Project Sdk="..."> med MSTest.Sdk.
Till exempel använder Microsoft.NET.Sdk.Webvissa ASP.NET Core integrationstestprojekt .
MSTest.Sdk härleds från Microsoft.NET.Sdk, så importerar det inte de ASP.NET Core SDK-mål som Microsoft.NET.Sdk.Web tillhandahåller.
Du kan också konfigurera MSTest manuellt i stället för att använda MSTest.Sdk. Manuell konfiguration krävs när projektet behöver en annan SDK på toppnivå (till exempel Microsoft.NET.Sdk.Web), men du kan också välja den med standarden Microsoft.NET.Sdk.
EnableMSTestRunner Lägg till egenskapen och ange OutputType till Exe i projektfilen. Lägg sedan till de MSTest-referenser som projektet kräver. Kontrollera att du använder MSTest 3.2.0 eller senare och uppdatera till den senaste tillgängliga MSTest-versionen.
Tänk på följande projektfil exempel:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Enable Microsoft.Testing.Platform, this is an opt-in feature -->
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!--
Displays error on console in addition to the log file. Note that this feature comes with a performance impact.
For more information, visit https://learn.microsoft.com/dotnet/core/testing/unit-testing-with-dotnet-test#show-failure-per-test
-->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<!--
MSTest meta package is the recommended way to reference MSTest.
It's equivalent to referencing:
Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework
MSTest.Analyzers
Starting with 3.8, it also includes:
Microsoft.Testing.Extensions.TrxReport
Microsoft.Testing.Extensions.CodeCoverage
-->
<PackageReference Include="MSTest" Version="4.1.0" />
</ItemGroup>
</Project>
Tips/Råd
För att säkerställa att alla testprojekt i lösningen använder MSTest-löparen anger du egenskaperna EnableMSTestRunner och TestingPlatformDotnetTestSupport i Directory.Build.props i stället för enskilda project filer.
Konfigurationer och filter
.runsettings
MTP stöder runsettings genom kommandoradsalternativet --settings. Den fullständiga listan över MSTest-poster som stöds finns i Konfigurera MSTest: Runsettings. Följande kommandon visar olika användningsexempel.
Att använda dotnet run:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Att använda dotnet exec:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
-or-
dotnet Contoso.MyTests.dll --settings config.runsettings
Använd den körbara filen:
Contoso.MyTests.exe --settings config.runsettings
Testfilter
Du kan ange testfiltret sömlöst med hjälp av kommandoradsalternativet --filter. Följande kommandon visar några exempel.
Att använda dotnet run:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Att använda dotnet exec:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
-or-
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Använd den körbara filen:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"