Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Istnieje kilka sposobów uruchamiania testów MSTest w zależności od potrzeb. Testy można uruchamiać z poziomu środowiska IDE (na przykład Visual Studio, Visual Studio Code lub JetBrains Rider) albo z wiersza polecenia albo z usługi CIĄGŁEj integracji (np. GitHub Actions lub Azure DevOps).
W przeszłości narzędzie MSTest polegało na narzędziu VSTest do uruchamiania testów we wszystkich kontekstach, ale począwszy od wersji 3.2.0, narzędzie MSTest ma własny moduł uruchamiający testy. Ten nowy moduł uruchamiający jest bardziej lekki i szybszy niż VSTest i jest to zalecany sposób uruchamiania testów MSTest.
VSTest vs Microsoft.Testing.Platform (MTP)
Narzędzie MSTest obsługuje uruchamianie testów zarówno z narzędziami VSTest i Microsoft.Testing.Platform (MTP). Obsługa protokołu MTP jest obsługiwana przez moduł uruchamiający MSTest, który może uruchamiać testy we wszystkich kontekstach (na przykład potoki ciągłej integracji, interfejsu wiersza polecenia, Eksploratora testów programu Visual Studio i Eksploratora tekstu 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 polecenia dotnet test.
Moduł uruchamiający MSTest jest oprogramowaniem open source i bazuje na Microsoft.Testing.Platform bibliotece. Kod można znaleźć Microsoft.Testing.Platform w repozytorium Microsoft/testfx w witrynie GitHub. Moduł uruchamiający MSTest jest dostarczany z pakietem MSTest in 3.2.0 lub nowszym.
Włączanie platformy 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ń.
Podczas korzystania z MSTest SDK domyślnie wybierasz platformę Microsoft.Testing.Platform.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Alternatywnie możesz włączyć uruchamiacz 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>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>
Wskazówka
Aby upewnić się, że wszystkie projekty testowe w rozwiązaniu używają runnera MSTest, ustaw właściwości EnableMSTestRunner i TestingPlatformDotnetTestSupport w pliku Directory.Build.props zamiast w pojedynczych plikach projektu.
Konfiguracje i filtry
.runsettings
Microsoft.Testing.Platform obsługuje runsettings za pomocą przełącznika --settings wiersza polecenia. Aby uzyskać pełną listę obsługiwanych wpisów MSTest, zobacz Konfigurowanie MSTest: Runsettings. Poniższe polecenia pokazują różne przykłady użycia.
Używając dotnet run:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Używając 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żna filtrować testy bezproblemowo, używając opcji wiersza polecenia filter--filter. W poniższych poleceniach przedstawiono kilka przykładów.
Używając dotnet run:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Używając 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"