Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az MSTest támogatja a tesztek futtatását mind a VSTest, mind a Microsoft.Testing.Platform (MTP)eszközökkel. Az MTP-t az MSTest-futó támogatja, amely minden környezetben futtathat teszteket (például folyamatos integrációs (CI)-folyamatokban, parancssori felületen, Visual Studio Test Explorerben és VS Code Text Explorerben). Az MSTest-futtató közvetlenül az MSTest tesztprojektekbe van beágyazva, és nincsenek más alkalmazásfüggőségek, például vstest.console vagy dotnet test, amelyek szükségesek lennének a tesztjeid futtatásához. A teszteket azonban továbbra is futtathatja a dotnet testhasználatával.
Az MSTest-futó nyílt forráskódú, és a Microsoft.Testing.Platform kódtárra épül.
Microsoft.Testing.Platform kódot a Microsoft/Testfx GitHub-adattárban találja. Az MSTest-futó a MSTest in 3.2.0 vagy újabb verziójával érkezik.
A Microsoft.Testing.Platform engedélyezése MSTest-projektben
Ajánlott MSTest SDK használata, mivel jelentősen leegyszerűsíti a projektkonfigurációt és a projekt frissítését, és biztosítja a platform (Microsoft.Testing.Platform) verzióinak és bővítményeinek megfelelő igazítását.
Ha MSTest SDKhasznál, alapértelmezés szerint a Microsoft.Testing.Platform használatát választja.
<Project Sdk="MSTest.Sdk/3.8.2">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Másik lehetőségként engedélyezheti az MSTest-futót oly módon, hogy hozzáadja a EnableMSTestRunner tulajdonságot, és beállítja OutputType értékét Exe-re a projektfájlban. Biztosítania kell azt is, hogy MSTest 3.2.0-t vagy újabbat használ. Határozottan javasoljuk, hogy frissítsen a legújabb elérhető MSTest-verzióra.
Tekintse meg a következő példaprojektfájlt:
<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>
Borravaló
Annak érdekében, hogy a megoldás összes tesztprojektje az MSTest-futót használja, állítsa be a EnableMSTestRunner és TestingPlatformDotnetTestSupport tulajdonságokat a Directory.Build.props fájlban az egyes projektfájlok helyett.
Konfigurációk és szűrők
.runsettings
Microsoft.Testing.Platform a runsettings-t a --settingsparancssori beállításon keresztül támogatja. A támogatott MSTest-bejegyzések teljes listájáért tekintse meg az MSTest konfigurálása: Runsettings című témakört. Az alábbi parancsok különböző használati példákat mutatnak be.
A dotnet run használatával:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
A dotnet exec használatával:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
-vagy-
dotnet Contoso.MyTests.dll --settings config.runsettings
A végrehajtható fájl használata:
Contoso.MyTests.exe --settings config.runsettings
Tesztszűrő
A tesztszűrőt a parancssori lehetőséggel --filterzökkenőmentesen biztosíthatja. Az alábbi parancsok példákat mutatnak be.
A dotnet run használatával:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
A dotnet exec használatával:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
-vagy-
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
A végrehajtható fájl használata:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"