Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Návod
Než zvolíte konfiguraci spouštěče, podívejte se na přehled testovacích platforem.
V závislosti na vašich potřebách můžete spouštět testy MSTest několika způsoby. Testy můžete spouštět z integrovaného vývojového prostředí (například Visual Studio, Visual Studio Code nebo JetBrains Rider) nebo z příkazového řádku nebo ze služby CI (například GitHub Actions nebo Azure DevOps).
MsTest se v minulosti spoléhal na VSTest pro spouštění testů ve všech kontextech, ale počínaje verzí 3.2.0 má MSTest vlastní spouštěč testů. Tento nový spouštěč je jednodušší a rychlejší než VSTest a je doporučeným způsobem spouštění testů MSTest.
VSTest vs MTP
MSTest podporuje spouštění testů pomocí VSTest i Microsoft.Testing.Platform (MTP). Podpora MTP využívá MSTest runner, který může spouštět testy ve všech kontextech (například kontinuální integrace (CI - pipelines), rozhraní příkazového řádku, Visual Studio Test Explorer a VS Code Text Explorer). 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ů. Přesto však můžete testy spouštět pomocí dotnet test.
MsTest runner je open source a staví na knihovně MTP. Kód Microsoft.Testing.Platform najdete v úložišti microsoft/testfx GitHub. Testovací nástroj MSTest je součástí MSTest in 3.2.0 nebo novější.
Povolení MTP v projektu MSTest
Pomocí sady MSTest SDK můžete výrazně zjednodušit konfiguraci projektu, správu verzí a sladění MTP a jeho rozšíření.
MSTest.Sdk nahrazuje Microsoft.NET.Sdk jako sadu SDK projektu a MTP je ve výchozím nastavení povoleno:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Note
MSTest.Sdk funguje pouze tehdy, když váš projekt může používat Microsoft.NET.Sdk jako základní sadu SDK. Pokud váš projekt vyžaduje jinou sadu SDK, nenahrazujte hodnotu <Project Sdk="..."> hodnotou MSTest.Sdk.
Například některé ASP.NET Core projekty integračního testu používají Microsoft.NET.Sdk.Web.
MSTest.Sdkje odvozen od Microsoft.NET.Sdk, takže neimportuje ASP.NET Core cíle sady SDK, které Microsoft.NET.Sdk.Web poskytuje.
MsTest můžete také nakonfigurovat ručně místo použití MSTest.Sdk. Ruční konfigurace se vyžaduje, když váš projekt potřebuje jinou sadu SDK nejvyšší úrovně (například Microsoft.NET.Sdk.Web), ale můžete ji také zvolit se standardním Microsoft.NET.Sdk. Přidejte vlastnost EnableMSTestRunner a nastavte OutputType na Exe v souboru vašeho projektu. Pak přidejte odkazy MSTest, které váš projekt vyžaduje. Ujistěte se, že používáte MSTest 3.2.0 nebo novější, a aktualizujte na nejnovější dostupnou verzi MSTest.
Podívejte se na následující příklad project souboru:
<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>
Návod
Pokud chcete zajistit, aby všechny projekty testů ve vašem řešení používaly msTest runner, nastavte EnableMSTestRunner a TestingPlatformDotnetTestSupport vlastnosti v souboru Directory.Build.props místo jednotlivých souborů project.
Konfigurace a filtry
.runsettings
MTP podporuje runsettings prostřednictvím možnosti příkazového řádku --settings. Ú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í.
Použití dotnet run:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Použití dotnet exec:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
-or-
dotnet Contoso.MyTests.dll --settings config.runsettings
Použití spustitelného souboru:
Contoso.MyTests.exe --settings config.runsettings
Filtr testů
Testovací filtr můžete bezproblémově použít pomocí příkazového řádku s volbou --filter. Následující příkazy ukazují některé příklady.
Použití dotnet run:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Použití dotnet exec:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
-or-
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Použití spustitelného souboru:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"