Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, MSTest.Sdk için gelişmiş yapılandırma seçeneklerini kapsar. Temel kurulum ve başlangıç için bkz. MSTest ile Başlarken.
Önemli
Varsayılan olarak MSTest.Sdk, dotnet testi de dahil olmak üzere Microsoft.Testing.Platform ile MSTest çalıştırıcısını kullanır. Bunun için CI ve yerel CLI çağrılarınızın değiştirilmesi gerekir ve . runsettings'in kullanılabilir girdilerini de etkiler. VSTest'e geçerek eski tümleştirmeleri ve araçları koruyabilirsiniz.
MSTest.Sdk varsayılan olarak EnableMSTestRunner ve TestingPlatformDotnetTestSupport değerlerini true olarak ayarlar. dotnet testi ve farklı modları hakkında daha fazla bilgi için dotnet testi kullanarak test etme bölümüne bakın.
Yardımcı araç kütüphanelerini test etme
MSTest.Sdk kullanan proje bir test yardımcı kitaplığı olması amaçlanıyor ve kendi başına çalıştırılabilir testler içermiyorsa, proje <IsTestApplication>false</IsTestApplication> olmalıdır.
Koşucuyu seçin
Varsayılan olarak, MSTest SDK'sı Microsoft.Testing.Platformkullanır, ancak özelliğini ekleyerek <UseVSTest>true</UseVSTest> geçebilirsiniz.
Microsoft.Testing.Platform'u genişletme
Deneyimi bir dizi NuGet paket uzantısı aracılığıyla özelleştirebilirsiniz. Bu deneyimi basitleştirmek ve geliştirmek için MSTest SDK'sı iki özellik sunar:
- Microsoft.Testing.Platform profili
- Uzantıları etkinleştirme veya devre dışı bırakma
Microsoft.Testing.Platform profili
profiles kavramı, test project uygulanacak varsayılan yapılandırma ve uzantı kümesini seçmenize olanak tanır.
Özelliği TestingExtensionsProfile kullanarak aşağıdaki üç profilden birini seçip profili ayarlayabilirsiniz:
None- Hiçbir uzantı etkinleştirilmedi.Default- MSTest.SDK'nın bu sürümü için önerilen uzantıları etkinleştirir. Özellik açıkça ayarlı olmadığında bu varsayılan değerdir.Aşağıdaki uzantıları etkinleştirir:
AllMicrosoft- Microsoft tarafından gönderilen tüm uzantıları etkinleştirin (kısıtlayıcı lisansa sahip uzantılar dahil).Aşağıdaki uzantıları etkinleştirir:
- Kod Kapsamı
- kilitlenme dökümü
- Fakes (MSTest.Sdk 3.7.0+)
- Askı Dökümü
- Hot Reload
- Yeniden Dene
- Trx Raporu
- AzureDevOpsReport
İşte None profilinin kullanıldığı tam bir örnek:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<TestingExtensionsProfile>None</TestingExtensionsProfile>
</PropertyGroup>
</Project>
| Eklenti/Profil | Hiç kimse | Varsayılan | AllMicrosoft |
|---|---|---|---|
| Kod Kapsamı | ✔️ | ✔️ | |
| kilitlenme dökümü | ✔️ | ||
| Sahtekarlıklar | ✔️¹ | ||
| Askı Dökümü | ✔️ | ||
| Hot Reload | ✔️ | ||
| Yeniden Dene | ✔️ | ||
| Trx | ✔️ | ✔️ | |
| AzureDevOpsReport | ✔️² |
¹ MSTest.Sdk 3.7.0+ ² MSTest.Sdk 3.11.0+
Uzantıları etkinleştirme veya devre dışı bırakma
Uzantılar, deseni Enable[NugetPackageNameWithoutDots]ile MSBuild özellikleri tarafından etkinleştirilebilir ve devre dışı bırakılabilir.
Örneğin, kilitlenme bilgi dökümü uzantısını etkinleştirmek için (NuGet paketi Microsoft.Testing.Extensions.CrashDump), aşağıdaki özelliği EnableMicrosoftTestingExtensionsCrashDump şu şekilde ayarlayarak true kullanabilirsiniz:
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCrashDump>true</EnableMicrosoftTestingExtensionsCrashDump>
</PropertyGroup>
</Project>
Kullanılabilir tüm uzantıların listesi için bkz. Microsoft.Testing.Platform özellikleri.
Uyarı
Farklılık gösterebileceğinden her uzantının lisans koşullarını gözden geçirmek önemlidir.
Etkin ve devre dışı bırakılmış uzantılar, seçtiğiniz uzantı profili tarafından sağlanan uzantılarla birleştirilir.
Örtük Default profilinin üzerinde ek bir uzantı etkinleştirmek için bu özellik deseni kullanılabilir (önceki CrashDumpExtension örneğinde görüldüğü gibi).
Seçili profilden gelen bir uzantıyı da devre dışı bırakabilirsiniz. Örneğin, MS Code Coverage uzantısını devre dışı bırakmak için <EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage> ayarını yapın.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>
</PropertyGroup>
</Project>
Özellikler
Seçilen koşucu ve koşucuya özgü uzantıların ötesinde, MSTest.Sdk test deneyiminizi basitleştirmek ve geliştirmek için ek özellikler de sunar.
Aspire ile test et
Aspire, gözlemlenebilir, üretime hazır, dağıtılmış uygulamalar oluşturmak için belirli bir yaklaşıma sahip, buluta hazır bir yığındır. Aspire, belirli buluta özgü endişeleri işleyen bir NuGet paketleri koleksiyonu aracılığıyla sunulur. Daha fazla bilgi için aspire belgelerine bakın.
Uyarı
Bu özellik MSTest.Sdk 3.4.0'dan kullanılabilir.
Özelliği EnableAspireTesting olarak true ayarlayarak, using ve Aspire ile test etmek için ihtiyacınız olan tüm bağımlılıkları ve varsayılan MSTest yönergelerini getirebilirsiniz.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnableAspireTesting>true</EnableAspireTesting>
</PropertyGroup>
</Project>
Playwright ile test et
Playwright, modern web apps için güvenilir uçtan uca test olanağı sağlar. Daha fazla bilgi için resmi Playwright belgelerine bakın.
Uyarı
Bu özellik MSTest.Sdk 3.4.0'dan kullanılabilir.
Özelliği EnablePlaywright olarak ayarlayarak, true ile using için gerekli olan tüm bağımlılıkları ve varsayılan Playwright yönergelerini MSTest ile test etmek amacıyla ekleyebilirsiniz.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<EnablePlaywright>true</EnablePlaywright>
</PropertyGroup>
</Project>
MSTest SDK'sına geçiş
MSTest SDK'sına geçiş yapmak için gereken aşağıdaki adımları göz önünde bulundurun.
Projenizi güncelleyin
Mevcut bir MSTest test projesini MSTest SDK'ye geçirirken, ilk olarak test projenizin en üstüne Sdk="Microsoft.NET.Sdk" ifadesini Sdk="MSTest.Sdk" ile değiştirin.
- Sdk="Microsoft.NET.Sdk"
+ Sdk="MSTest.Sdk"
global.json sürümünüze ekleyin:
{
"msbuild-sdks": {
"MSTest.Sdk": "4.1.0"
}
}
Daha sonra project basitleştirmeye başlayabilirsiniz.
Varsayılan özellikleri kaldır:
- <EnableMSTestRunner>true</EnableMSTestRunner>
- <OutputType>Exe</OutputType>
- <IsPackable>false</IsPackable>
- <IsTestProject>true</IsTestProject>
Varsayılan paket atıflarını kaldır.
- <PackageReference Include="MSTest"
- <PackageReference Include="MSTest.TestFramework"
- <PackageReference Include="MSTest.TestAdapter"
- <PackageReference Include="MSTest.Analyzers"
- <PackageReference Include="Microsoft.NET.Test.Sdk"
Son olarak, kullandığınız uzantı profiline bağlı olarak paketlerden Microsoft.Testing.Extensions.* bazılarını da kaldırabilirsiniz.
CI'nizi güncelleştirme
Projelerinizi güncelledikten sonra, Microsoft.Testing.Platform (varsayılan) kullanıyorsanız ve dotnet test'e güvenerek testlerinizi çalıştırıyorsanız, CI yapılandırmanızı güncellemeniz gerekir. Daha fazla bilgi edinmek ve gerekli tüm değişiklikleri anlamanızı sağlamak için bkz: dotnet test tümleştirmesi.
dotnet test VSTest modunu kullanıyorsanız, Azure DevOps'ta DotNetCoreCLI görevi kullanılırken örnek bir güncelleştirme aşağıda verilmiştir:
\- task: DotNetCoreCLI@2
inputs:
command: 'test'
projects: '**/**.sln'
- arguments: '--configuration Release'
+ arguments: '--configuration Release -- --report-trx --results-directory $(Agent.TempDirectory) --coverage'
Bilinen sınırlamalar
NuGet tarafından sağlanan MSBuild SDK'ları (MSTest.Sdk dahil) sürüm güncellemelerinde sınırlı araç desteğine sahiptir, yani NuGet paketlerini yönetmek için kullanılan sıradan NuGet güncellemesi ve Visual Studio kullanıcı arabirimi beklendiği gibi çalışmamaktadır. sürümü global.json dosyasında ve project dosyasında el ile güncelleştirmeniz gerekir. (dependabot-core#12824 ve dependabot-core#8615 sorunları nedeniyle Dependabot kullanıyor olsanız bile bu durum geçerlidir.)