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.
Jótanács
A futókonfiguráció kiválasztása előtt tekintse meg a tesztplatformok áttekintését.
Az MSTest-tesztek többféleképpen is futtathatók az igényeitől függően. Teszteket futtathat IDE-ből (például Visual Studio, Visual Studio Code vagy JetBrains Rider), vagy a parancssorból, vagy egy CI-szolgáltatásból (például GitHub Actions vagy Azure DevOpsból).
Az MSTest korábban VSTest támaszkodott a tesztek futtatására minden környezetben, de a 3.2.0-s verziótól kezdve az MSTest saját tesztfuttatóval rendelkezik. Ez az új futóprogram könnyedebb és gyorsabb, mint a VSTest, és az MSTest-tesztek futtatására ajánlott módszer.
VSTest vs MTP
Az MSTest a VSTest és a Microsoft.Testing.Platform (MTP) használatával is támogatja a tesztek futtatását. Az MTP-t az MSTest-futó támogatja, amely minden környezetben futtathat teszteket (például folyamatos integrációs (CI) pipelines, parancssori felület, Visual Studio Test Explorer és VS Code Text Explorer). Az MSTest futó közvetlenül az MSTest-tesztprojektekbe van beágyazva, és a tesztek futtatásához nincsenek szükségesek más alkalmazásfüggőségek, mint például vstest.console vagy dotnet test. A teszteket azonban továbbra is futtathatja a következővel dotnet test: .
Az MSTest-futó nyílt forráskód, és a MTP kódtárra épül. A Microsoft.Testing.Platform GitHub adattárban található kód. Az MSTest futtató összecsomagolva érkezik MSTest in 3.2.0 vagy újabb verzióval.
A .NET 10 SDK-val és az újabb verziókkal válassza ki a(z) global.jsondotnet test dedikált MTP-módját. A .NET 11 6. előzetes verziótól kezdve felülbírálhatja az aktuális folyamat kijelölését a DOTNET_TEST_RUNNER környezeti változóval. A támogatott bemenetekről, az SDK-verzióra vonatkozó követelményekről és az MTP-specifikus lehetőségekről lásd dotnet test az MTP-t.
MTP engedélyezése MSTest-projektben
Az MSTest SDK-val jelentősen leegyszerűsítheti a projektkonfigurációt, a verziókezelést és az MTP és bővítményeinek igazítását.
MSTest.Sdk
Microsoft.NET.Sdk projekt SDK-ként cseréli le, és az MTP alapértelmezés szerint engedélyezve van:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Note
MSTest.Sdk csak akkor működik, ha a projekt alap SDK-ként használható Microsoft.NET.Sdk . Ha a projekt másik SDK-t igényel, ne cserélje le a <Project Sdk="..."> értéket MSTest.Sdk értékre.
Néhány ASP.NET Core integrációs tesztprojekt például használhatóMicrosoft.NET.Sdk.Web.
MSTest.Sdk a(z) Microsoft.NET.Sdk elem-ből származik, ezért nem importálja azokat az ASP.NET Core SDK-célokat, amelyeket a(z) Microsoft.NET.Sdk.Web biztosítja.
Az MSTestet manuálisan is konfigurálhatja a(z) MSTest.Sdk használata helyett. Manuális konfigurálásra akkor van szükség, ha a projektnek más legfelső szintű SDK-ra van szüksége (például Microsoft.NET.Sdk.Web), de a standard Microsoft.NET.Sdkverzióval is kiválaszthatja. Adja hozzá a EnableMSTestRunner tulajdonságot, és állítsa a(z) OutputType értékét Exe értékre a projektfájljában. Ezután adja hozzá a projekt által igényelt MSTest-hivatkozásokat. Győződjön meg arról, hogy az MSTest 3.2.0-s vagy újabb verzióját használja, és frissítsen a legújabb elérhető MSTest-verzióra.
Tekintse meg a következő példát project fájlra:
<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>
Jótanács
Annak érdekében, hogy a megoldás összes tesztprojektje használja az MSTest-futót, állítsa be a EnableMSTestRunner és TestingPlatformDotnetTestSupport tulajdonságokat a Directory.Build.props fájlban az egyes project fájlok helyett.
Konfigurációk és szűrők
.runsettings
Az MTP a futtatási beállításokat a parancssori opció --settingssegítségével 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.
dotnet run használata:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
dotnet exec használata:
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.
dotnet run használata:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
dotnet exec használata:
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"
Lásd még
-
Tesztelés
dotnet test-val -
dotnet testMTP használatával -
dotnet testVSTesttel - Az MTP parancssori felületének beállításaira vonatkozó referencia
- UWP- és WinUI 3-alkalmazások tesztelése MSTest és MTP használatával
- Windows asztali alkalmazások tesztelése az MSTest UI-automatizálás használatával
- Szűrőtesztek
- Egységtesztek rendelése