Översikt över MSTest runner
MSTest-löparen är ett enkelt och bärbart alternativ till VSTest för att köra tester i alla kontexter (till exempel CI-pipelines (kontinuerlig integrering), 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, till exempel eller dotnet test
, som vstest.console
behövs för att köra dina tester.
MSTest-löparen är öppen källkod och bygger på ett Microsoft.Testing.Platform
bibliotek. Du hittar Microsoft.Testing.Platform
kod på GitHub-lagringsplatsen microsoft/testfx . MSTest-löparen levereras med MSTest in 3.2.0-preview.23623.1
eller senare.
Aktivera MSTest runner i ett MSTest-projekt
Vi rekommenderar att du använder MSTest SDK eftersom det avsevärt förenklar projektkonfigurationen och uppdateringen av projektet, och det säkerställer en korrekt justering av versionerna av plattformen (MSTest runner) och dess tillägg.
När du använder MSTest SDK
är du som standard anmäld till att använda MSTest runner.
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Du kan också aktivera MSTest runner genom att lägga till EnableMSTestRunner
Exe
egenskapen och inställningen OutputType
i projektfilen. Du måste också se till att du använder MSTest 3.2.0-preview.23623.1
eller senare.
Överväg följande exempelprojektfil:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Enable the MSTest runner, this is an opt-in feature -->
<EnableMSTestRunner>true</EnableMSTestRunner>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</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
-->
<PackageReference Include="MSTest" Version="3.2.0" />
<!--
Coverlet collector isn't compatible with MSTest runner, you can
either switch to Microsoft CodeCoverage (as shown below),
or switch to be using coverlet global tool
https://github.com/coverlet-coverage/coverlet#net-global-tool-guide-suffers-from-possible-known-issue
-->
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"
Version="17.10.1" />
</ItemGroup>
</Project>
Konfigurationer och filter
.runsettings
MSTest-löparen stöder körningar via kommandoradsalternativet --settings
. Den fullständiga listan över MSTest-poster som stöds finns i Konfigurera MSTest: Runsettings. Följande kommandon visar olika användningsexempel.
Använda dotnet run
:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Använda dotnet exec
:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
-eller-
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.
Använda dotnet run
:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Använda dotnet exec
:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
-eller-
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Använd den körbara filen:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"