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.
Ez a cikk az MSTest.Sdk speciális konfigurációs lehetőségeit ismerteti. Az alapvető beállításokhoz és az induláshoz tekintse meg az MSTest oldalát: Get started with MSTest.
Fontos
Az MSTest.Sdk alapértelmezés szerint az MTP-vel rendelkező MSTest-futót használja, beleértve a dotnet-teszteket is. Ehhez módosítani kell a CI-t és a helyi CLI-hívásokat, és hatással van a .runsettings elérhető bejegyzéseire is. A régi integrációkat és eszközöket megtarthatja a VSTestre való váltással.
Az MSTest.Sdk alapértelmezés szerint igaz értékre állítja.EnableMSTestRunnerTestingPlatformDotnetTestSupport A dotnet-tesztről és a különböző módokról további információt a Dotnet-teszttel végzett tesztelés című témakörben talál.
Segédkódtárak tesztelése
Ha az MSTest.Sdk-t használó project egy teszt segédprogram segédkönyvtárának szánták, és önmagában nem tartalmaz futtatható teszteket, a project <IsTestApplication>false</IsTestApplication> kell rendelkeznie.
Válassza ki a futót
Alapértelmezés szerint az MSTest SDK az MTP-re támaszkodik, de a <UseVSTest>true</UseVSTest> tulajdonság hozzáadásával átválthat VSTest-re.
MTP kiterjesztése
Az MTP-élményt NuGet-csomagbővítmények halmazával szabhatja testre. A felhasználói élmény egyszerűsítése és javítása érdekében az MSTest SDK két funkciót vezet be:
Microsoft. Testing.Platform profil
A profilok lehetővé teszi a teszt project alkalmazni kívánt konfigurációk és bővítmények alapértelmezett készletének kiválasztását.
A profilt a következő három profil egyikével állíthatja be a tulajdonsággal TestingExtensionsProfile :
None- Nincs engedélyezve bővítmény.Default– Engedélyezi az MSTest.SDK ezen verziójához javasolt bővítményeket. Ez az alapértelmezett érték, ha a tulajdonság nincs explicit módon beállítva.Engedélyezi a következő bővítményeket:
AllMicrosoft– Engedélyezze a Microsoft által szállított összes bővítményt (beleértve a korlátozó licenccel rendelkező bővítményeket is).Engedélyezi a következő bővítményeket:
Íme egy teljes példa a None profil használatával:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<TestingExtensionsProfile>None</TestingExtensionsProfile>
</PropertyGroup>
</Project>
| Bővítmény/profil | Egyik sem | Alapértelmezett | AllMicrosoft |
|---|---|---|---|
| Kódlefedettség | ✔️ | ✔️ | |
| Hibakép | ✔️ | ||
| Hamisítványok | ✔️¹ | ||
| lefagyás állapotmentése | ✔️ | ||
| Hot Reload | ✔️ | ||
| Újrapróbálkozás | ✔️ | ||
| Trx | ✔️ | ✔️ | |
| AzureDevOpsReport | ✔️² |
¹ MSTest.Sdk 3.7.0+ ² MSTest.Sdk 3.11.0+
Bővítmények engedélyezése vagy letiltása
A bővítményeket az MSBuild tulajdonságok a mintával Enable[NugetPackageNameWithoutDots]engedélyezhetik és tilthatják le.
Például az összeomlási memóriakép bővítmény engedélyezéséhez (NuGet-csomag Microsoft. Testing.Extensions.CrashDump) az alábbi EnableMicrosoftTestingExtensionsCrashDump tulajdonságot true értékre állíthatja:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCrashDump>true</EnableMicrosoftTestingExtensionsCrashDump>
</PropertyGroup>
</Project>
Az összes elérhető bővítmény listáját az MTP-funkciók között találja.
Figyelmeztetés
Fontos áttekinteni az egyes bővítmények licencfeltételeit, mivel ezek eltérőek lehetnek.
Az engedélyezett és a letiltott bővítmények a kiválasztott bővítményprofil által biztosított bővítményekkel vannak kombinálva.
Ez a tulajdonságminta egy további bővítmény engedélyezésére használható az implicit Default profilon (ahogy az előző CrashDumpExtension-példában is látható).
A kijelölt profilból származó bővítményeket is letilthatja. Például tiltsa le a MS Code Coverage kiterjesztést a következő beállítással <EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>
</PropertyGroup>
</Project>
Funkciók
A futó és a futóspecifikus bővítmények kiválasztásán kívül további funkciókat is biztosít a MSTest.Sdk tesztelési élmény leegyszerűsítéséhez és javításához.
Tesztelés a Aspire
Aspire egy cloud-ready stack, amely magába foglalja az elosztott, megfigyelhető, éles üzemre kész alkalmazások felépítéséhez szükséges véleményvezérelt eszközkészletet. Aspire a NuGet-csomagok gyűjteményén keresztül érkezik, amelyek bizonyos felhő-natív szempontokat kezelnek. További információkért tekintse meg a Aspire dokumentumokat.
Feljegyzés
Ez a funkció az MSTest.Sdk 3.4.0-s verzióban érhető el.
A tulajdonság EnableAspireTesting értékének true-re állításával behozhatja az összes szükséges függőséget és alapértelmezett using direktívát a teszteléshez a Aspire és MSTest használatával.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableAspireTesting>true</EnableAspireTesting>
</PropertyGroup>
</Project>
Teszt forgatókönyvíróval
A Playwright megbízható, végpontok közötti tesztelést tesz lehetővé a modern webalkalmazások számára. További információkért lásd a hivatalos drámaíró dokumentációját.
Feljegyzés
Ez a funkció az MSTest.Sdk 3.4.0-s verzióban érhető el.
Ha beállítja a EnablePlaywright tulajdonságot true-re, behozhatja az összes függőséget és az alapértelmezett using irányelveket, amelyek szükségesek a Playwright és a MSTest teszteléséhez.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnablePlaywright>true</EnablePlaywright>
</PropertyGroup>
</Project>
Migrálás AZ MSTest SDK-ba
Vegye figyelembe az alábbi lépéseket az MSTest SDK-ba való migráláshoz.
A project frissítése
Meglévő MSTest-tesztprojekt MSTest SDK-ba való migrálásakor először cserélje le a tesztprojekt tetején található Sdk="Microsoft.NET.Sdk" bejegyzést Sdk="MSTest.Sdk"
- Sdk="Microsoft.NET.Sdk"
+ Sdk="MSTest.Sdk"
Adja hozzá a verziót a global.json-hez:
{
"msbuild-sdks": {
"MSTest.Sdk": "4.1.0"
}
}
Ezután elkezdheti egyszerűsíteni a project.
Alapértelmezett tulajdonságok eltávolítása:
- <EnableMSTestRunner>true</EnableMSTestRunner>
- <OutputType>Exe</OutputType>
- <IsPackable>false</IsPackable>
- <IsTestProject>true</IsTestProject>
Az alapértelmezett csomaghivatkozások eltávolítása:
- <PackageReference Include="MSTest"
- <PackageReference Include="MSTest.TestFramework"
- <PackageReference Include="MSTest.TestAdapter"
- <PackageReference Include="MSTest.Analyzers"
- <PackageReference Include="Microsoft.NET.Test.Sdk"
Végül a használt bővítményprofil alapján eltávolíthat néhány Microsoft.Testing.Extensions.* csomagot is.
Frissítse a saját CI-jét
Miután frissítette a projekteket, ha MTP-t használ (alapértelmezett), és ha a tesztek futtatására dotnet test támaszkodik, frissítenie kell a CI-konfigurációt. További információkért és az összes szükséges módosítás megértéséhez tekintse meg a dotnet tesztintegrációját.
Ha a dotnet test VSTest üzemmódját használja, íme egy példa a DotNetCoreCLI feladatot az Azure DevOps-ban történő használatakor:
\- task: DotNetCoreCLI@2
inputs:
command: 'test'
projects: '**/**.sln'
- arguments: '--configuration Release'
+ arguments: '--configuration Release -- --report-trx --results-directory $(Agent.TempDirectory) --coverage'
Ismert korlátozások
A NuGet által biztosított MSBuild SDK-k (beleértve az MSTest.Sdk-t is) tagolt eszközkészlet-támogatással rendelkeznek a verzió frissítésekor, ami azt jelenti, hogy a Szokásos NuGet-frissítés és a NuGet-csomagok kezelésére szolgáló Visual Studio felhasználói felület nem a várt módon működik. A verziót manuálisan kell frissítenie a global.json fájlban és a project fájlban. (Ez akkor is érvényes, ha a Dependabotot dependabot-core#12824 és dependabot-core#8615 problémák miatt használja.)