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é
MsTest.Sdk ve výchozím nastavení používá msTest runner s Microsoft.Testing.Platform, včetně dotnet test. 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 Microsoft.Testing.Platform, ale můžete přepnout na VSTest přidáním vlastnosti <UseVSTest>true</UseVSTest>.
Rozšíření Microsoft.Testing.Platform
Můžete přizpůsobit Microsoft.Testing.Platform prostředí pomocí sady rozšíření NuGet balíčků. 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á Microsoftem (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í
- Hot Reload
- 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 | ✔️ | ||
| Padělky | ✔️¹ | ||
| Výpis z přerušení | ✔️ | ||
| Hot Reload | ✔️ | ||
| 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 Microsoft.Testing.Platform.
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í pomocí Aspire
Aspire je definovaný, připravený pro cloud technologický stack pro sestavování pozorovatelných, produkčně připravených distribuovaných aplikací. Aspire se dodává prostřednictvím kolekce balíčků NuGet, které řeší konkrétní problematiky nativní pro cloud. Další informace najdete v dokumentaci Aspire.
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 na 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 můžete na základě profilu rozšíření, který používáte, odebrat také některé Microsoft.Testing.Extensions.* balíčky.
Aktualizujte své CI
Po aktualizaci projektů, pokud používáte Microsoft.Testing.Platform (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í
Sady SDK pro MSBuild poskytované nástrojem NuGet (včetně MSTest.Sdk) mají omezenou podporu nástrojů, pokud jde o aktualizaci verzí, což znamená, že obvyklá aktualizace NuGet a uživatelské rozhraní Visual Studio pro správu balíčků NuGet nefunguje, jak by se očekávalo. 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.)