Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
MSTest obsługuje uruchamianie testów zarówno z VSTest, jak i Microsoft.Testing.Platform (MTP). Obsługa protokołu MTP jest zapewniana przez framework MSTest, który może uruchamiać testy we wszystkich kontekstach (na przykład w potokach ciągłej integracji, interfejsie wiersza polecenia, Eksploratorze testów programu Visual Studio i Eksploratorze testów programu VS Code). Moduł uruchamiający MSTest jest osadzony bezpośrednio w projektach testowych MSTest i nie ma żadnych innych zależności aplikacji, takich jak vstest.console lub dotnet test, wymaganych do uruchamiania testów. Jednak nadal można uruchamiać testy przy użyciu dotnet test.
Moduł uruchamiający MSTest jest oprogramowaniem open source i opiera się na bibliotece Microsoft.Testing.Platform. Kod Microsoft.Testing.Platform można znaleźć w repozytorium microsoft/testfx GitHub. Moduł uruchamiający MSTest jest dostarczany z pakietem MSTest in 3.2.0 lub nowszym.
Włącz Microsoft.Testing.Platform w projekcie MSTest
Zaleca się używanie zestawu MSTest SDK, ponieważ znacznie upraszcza konfigurację projektu i aktualizowanie projektu, a także zapewnia odpowiednie dopasowanie wersji platformy (Microsoft.Testing.Platform) i jej rozszerzeń.
Jeśli używasz MSTest SDK, domyślnie wyrażasz zgodę na korzystanie z witryny Microsoft.Testing.Platform.
<Project Sdk="MSTest.Sdk/3.8.2">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Alternatywnie możesz włączyć moduł uruchamiający MSTest, dodając właściwość EnableMSTestRunner i ustawiając OutputType na Exe w pliku projektu. Należy również upewnić się, że używasz MSTest 3.2.0 lub nowszego. Zdecydowanie zalecamy aktualizację do najnowszej dostępnej wersji MSTest.
Rozważmy następujący przykładowy plik projektu:
<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/microsoft-testing-platform-integration-dotnet-test#show-failure-per-test
-->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
<OutputType>Exe</OutputType>
<TargetFramework>net8.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="3.8.0" />
<!--
Coverlet collector isn't compatible with Microsoft.Testing.Platform, 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>
Napiwek
Aby upewnić się, że wszystkie projekty testowe w rozwiązaniu używają modułu uruchamiającego MSTest, ustaw właściwości EnableMSTestRunner i TestingPlatformDotnetTestSupport w pliku Directory.Build.props zamiast pojedynczych plików projektu.
Konfiguracje i filtry
.runsettings
Platforma Microsoft.Testing.Platform obsługuje runsettings za pośrednictwem opcji wiersza polecenia --settings. Pełną listę obsługiwanych wpisów MSTest można znaleźć w Konfigurowanie MSTest: Runsettings. Poniższe polecenia pokazują różne przykłady użycia.
Korzystanie z dotnet run:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Korzystanie z dotnet exec:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
— lub —
dotnet Contoso.MyTests.dll --settings config.runsettings
Przy użyciu pliku wykonywalnego:
Contoso.MyTests.exe --settings config.runsettings
Filtr testów
Możesz filtr testów bezproblemowo ustawić używając opcji --filter wiersza polecenia. W poniższych poleceniach przedstawiono kilka przykładów.
Korzystanie z dotnet run:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Korzystanie z dotnet exec:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
— lub —
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Przy użyciu pliku wykonywalnego:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"