Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje pokročilé možnosti konfigurace pro MSTest.Sdk. Pro základní nastavení a začátek se podívejte na Get started with MSTest.
Důležité
Ve výchozím nastavení používá MSTest.Sdk spouštěč MSTest s MTP, včetně testu dotnet. To vyžaduje úpravu volání CI a místního rozhraní příkazového řádku a má vliv také na dostupné položky .runsettings. Staré integrace a nástroje můžete zachovat přepnutím na VSTest.
MsTest.Sdk ve výchozím nastavení nastaví EnableMSTestRunner i TestingPlatformDotnetTestSupport na hodnotu true. Další informace o testu dotnet a jeho různých režimech naleznete v tématu Testování pomocí testu dotnet.
Pomocné knihovny testovacího nástroje
Pokud project, která používá MSTest.Sdk, je určena jako pomocná knihovna testovacího nástroje a neobsahuje žádné spustitelné testy, project by měla mít <IsTestApplication>false</IsTestApplication>.
Vyberte běžce
Sada MSTest SDK ve výchozím nastavení spoléhá na MTP, ale můžete přepnout na VSTest přidáním vlastnosti <UseVSTest>true</UseVSTest>.
Rozšíření MTP
Prostředí MTP můžete přizpůsobit prostřednictvím sady rozšíření balíčků NuGet. Pro zjednodušení a zlepšení tohoto prostředí sada MSTest SDK zavádí dvě funkce:
Profil Microsoft.Testing.Platform
Koncept profiles umožňuje vybrat výchozí sadu konfigurací a rozšíření, která se použijí na testovací project.
Profil můžete nastavit pomocí vlastnosti TestingExtensionsProfile s jedním z následujících tří profilů:
None– Nejsou povolena žádná rozšíření.Default– Povolí doporučená rozšíření pro tuto verzi MSTest.SDK. Toto je výchozí nastavení, pokud vlastnost není explicitně nastavena.Povolí následující rozšíření:
AllMicrosoft– Povolí všechna rozšíření dodávaná Microsoft (včetně rozšíření s omezující licencí).Povolí následující rozšíření:
- Pokrytí kódu
- výpis chyb
- Fakes (MSTest.Sdk 3.7.0+)
- Výpis z přerušení
- Opětovné načítání za provozu
- Opakovat
- Trx Zpráva
- AzureDevOpsReport
Tady je úplný příklad použití None profilu:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<TestingExtensionsProfile>None</TestingExtensionsProfile>
</PropertyGroup>
</Project>
| Rozšíření/profil | Žádný | Výchozí | AllMicrosoft |
|---|---|---|---|
| Pokrytí kódu | ✔️ | ✔️ | |
| výpis chyb | ✔️ | ||
| Falzifikáty | ✔️¹ | ||
| Výpis z přerušení | ✔️ | ||
| Opětovné načítání za provozu | ✔️ | ||
| Opakovat | ✔️ | ||
| Trx | ✔️ | ✔️ | |
| AzureDevOpsReport | ✔️² |
¹ MSTest.Sdk 3.7.0+ ² MSTest.Sdk 3.11.0+
Povolení nebo zákaz rozšíření
Rozšíření lze povolit a zakázat pomocí vlastností nástroje MSBuild se vzorem Enable[NugetPackageNameWithoutDots].
Pokud chcete například povolit rozšíření výpisu stavu systému (balíček NuGet Microsoft. Testing.Extensions.CrashDump) můžete použít následující vlastnost EnableMicrosoftTestingExtensionsCrashDump nastavenou na true:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCrashDump>true</EnableMicrosoftTestingExtensionsCrashDump>
</PropertyGroup>
</Project>
Seznam všech dostupných rozšíření najdete v tématu Funkce MTP.
Varování
Je důležité si projít licenční podmínky pro každé rozšíření, protože se můžou lišit.
Povolená a zakázaná rozšíření se kombinují s rozšířeními poskytovanými vybraným profilem rozšíření.
Tento vzor vlastnosti lze použít k povolení dalšího rozšíření nad implicitním Default profilem (jak je vidět v předchozím příkladu CrashDumpExtension).
Můžete také zakázat rozšíření, které pochází z vybraného profilu. Například zakažte MS Code Coverage rozšíření nastavením <EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>
</PropertyGroup>
</Project>
Funkce
Mimo výběru běžce a rozšíření specifických pro běžce poskytuje MSTest.Sdk také další funkce, které zjednodušují a vylepšují vaše zkušenosti s testováním.
Testování s využitím Aspire
Aspire je vyhraněný technologický stack připravený pro cloud určený k vytváření pozorovatelných, pro produkci připravených a distribuovaných aplikací. Aspire se dodává prostřednictvím kolekce balíčků NuGet, které zpracovávají konkrétní záležitosti určené pro cloud. Další informace najdete v Aspire dokumentaci.
Poznámka:
Tato funkce je dostupná z MSTest.Sdk 3.4.0.
Nastavením vlastnosti EnableAspireTestingtruemůžete přenést všechny závislosti a výchozí using direktivy, které potřebujete pro testování pomocí Aspire a MSTest.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableAspireTesting>true</EnableAspireTesting>
</PropertyGroup>
</Project>
Test s Playwrightem
Playwright umožňuje spolehlivé komplexní testování pro moderní web apps. Další informace naleznete v oficiální dokumentaci Playwright.
Poznámka:
Tato funkce je dostupná z MSTest.Sdk 3.4.0.
Nastavením vlastnosti EnablePlaywrighttrue můžete přenést všechny závislosti a výchozí using direktivy, které potřebujete pro testování pomocí Playwright a MSTest.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnablePlaywright>true</EnablePlaywright>
</PropertyGroup>
</Project>
Migrace na MSTest SDK
Zvažte následující kroky potřebné k migraci do sady MSTest SDK.
Aktualizace project
Při migraci existujícího testovacího projektu MSTest do sady MSTest SDK začněte nahrazením položky Sdk="Microsoft.NET.Sdk" v horní části testovacího projektu Sdk="MSTest.Sdk"
- Sdk="Microsoft.NET.Sdk"
+ Sdk="MSTest.Sdk"
Přidejte verzi do global.json:
{
"msbuild-sdks": {
"MSTest.Sdk": "4.1.0"
}
}
Pak můžete začít zjednodušit project.
Odebrat výchozí vlastnosti:
- <EnableMSTestRunner>true</EnableMSTestRunner>
- <OutputType>Exe</OutputType>
- <IsPackable>false</IsPackable>
- <IsTestProject>true</IsTestProject>
Odebrat výchozí odkazy na balíčky:
- <PackageReference Include="MSTest"
- <PackageReference Include="MSTest.TestFramework"
- <PackageReference Include="MSTest.TestAdapter"
- <PackageReference Include="MSTest.Analyzers"
- <PackageReference Include="Microsoft.NET.Test.Sdk"
Nakonec na základě profilu rozšíření, který používáte, můžete některé balíčky Microsoft.Testing.Extensions.* odebrat.
Aktualizujte své CI
Po aktualizaci projektů, pokud používáte MTP (výchozí) a pokud se spoléháte na dotnet test spuštění testů, musíte aktualizovat konfiguraci CI. Další informace a vysvětlení všech požadovaných změn najdete v tématu integrace testů dotnet.
Pokud používáte režim VSTest dotnet test, tady je příklad aktualizace při použití úlohy DotNetCoreCLI v Azure DevOps:
\- task: DotNetCoreCLI@2
inputs:
command: 'test'
projects: '**/**.sln'
- arguments: '--configuration Release'
+ arguments: '--configuration Release -- --report-trx --results-directory $(Agent.TempDirectory) --coverage'
Známá omezení
MSBuild SDK poskytované NuGetem (včetně MSTest.Sdk) mají omezenou podporu nástrojů pro aktualizaci verze, to znamená, že obvyklá aktualizace NuGet a uživatelské rozhraní Visual Studio pro správu balíčků NuGet nefunguje podle očekávání. Verzi budete muset aktualizovat ručně v souboru global.json a v souboru project. (To platí i v případě, že používáte Dependabot kvůli problémům dependabot-core#12824 a dependabot-core#8615.)