Přehled msTest runneru
MSTest Runner je jednoduchá a přenosná alternativa K VSTest pro spouštění testů ve všech kontextech (například kanály kontinuální integrace (CI), rozhraní příkazového řádku, Průzkumníka testů sady Visual Studio a Průzkumníka textu VS Code). MsTest runner je vložen přímo do vašich projektů testů MSTest a nejsou potřeba žádné další závislosti aplikace, například vstest.console
nebo dotnet test
, ke spuštění testů.
MsTest runner je open source a staví na knihovně Microsoft.Testing.Platform
. Kód najdete Microsoft.Testing.Platform
v úložišti Microsoft/testfx Na GitHubu. MsTest runner je součástí MSTest in 3.2.0-preview.23623.1
nebo novější.
Povolení msTest runneru v projektu MSTest
Doporučuje se používat sadu MSTest SDK , protože výrazně zjednodušuje konfiguraci a aktualizaci projektu a zajišťuje správné sladění verzí platformy (MSTest runner) a jeho rozšíření.
Při použití MSTest SDK
se ve výchozím nastavení přihlásíte k používání msTest runneru.
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Případně můžete povolit msTest runner přidáním EnableMSTestRunner
vlastnosti a nastavení OutputType
do Exe
souboru projektu. Musíte také zajistit, že používáte MSTest 3.2.0-preview.23623.1
nebo novější.
Podívejte se na následující příklad souboru projektu:
<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>
Spropitné
Doporučujeme nastavit vlastnost EnableMSTestRunner
v souboru Directory.Build.props místo souboru csproj, aby se zajistilo, že všechny testovací projekty ve vašem řešení používají msTest runner.
Konfigurace a filtry
.runsettings
MsTest runner podporuje runsettings prostřednictvím možnosti --settings
příkazového řádku . Úplný seznam podporovaných položek MSTest naleznete v tématu Konfigurace MSTest: Runsettings. Následující příkazy ukazují různé příklady použití.
Pomocí dotnet run
:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Pomocí dotnet exec
:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
nebo
dotnet Contoso.MyTests.dll --settings config.runsettings
Použití spustitelného souboru:
Contoso.MyTests.exe --settings config.runsettings
Filtr testů
Filtr testů můžete bezproblémově zadat pomocí možnosti --filter
příkazového řádku . Následující příkazy ukazují některé příklady.
Pomocí dotnet run
:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Pomocí dotnet exec
:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
nebo
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Použití spustitelného souboru:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"