Aracılığıyla paylaş


.NET için test platformları genel bakış

.NET bir test çerçevesi ve test platformu, testleri bulmak ve çalıştırmak için birlikte çalışan farklı bileşenlerdir.

  • Test çerçevesi MSTest, NUnit, xUnit.net veya TUnit gibi üzerinde yazdığınız test modelini tanımlar.
  • Test platformu testleri çalıştırır, IDE'ler ve CLI ile tümleştirilir ve paylaşılan uzantı noktaları sağlar.

İki test platformu arasında seçim yapabilirsiniz:

  • VSTest
  • Microsoft.Testing.Platform (MTP)

Tavsiye

En basit kurulum için deponuz için bir platform seçin ve bu platform için test projelerini, CI'yi ve araçları tutarlı bir şekilde yapılandırın. VsTest tabanlı ve Microsoft.Testing.Platform tabanlı .NET test projelerini aynı çözümde karıştırmayın veya bu senaryo desteklenmediğinden yapılandırmayı çalıştırın. VSTest'e bağlı .NET olmayan testler de çalıştırıyorsanız (örneğin, C++ veya JavaScript testleri), bu testleri MTP tabanlı .NET testlerinden ayrı yapılandırmalarda çalıştırın.

Platformunuzu seçme

Hızlı bir şekilde seçim yapmak için aşağıdaki senaryoları kullanın.

Kullanım örneği Seç Neden
Yerel AOT veya trimming testi gerçekleştirme senaryolarına ihtiyacınız vardır. Microsoft.Testing.Platform MTP bu modern dağıtım senaryolarını desteklerken VSTest desteklemez.
Paketlenmiş WinUI veya UWP test projeleri oluşturuyorsunuz. VSTest Bu proje türleri şu anda MTP tarafından desteklenmiyor.
.NET testleri ve .NET olmayan test bağdaştırıcılarını (örneğin JavaScript veya C++ bağdaştırıcıları) karıştırmanız gerekir. VSTest VSTest karma dil bağdaştırıcısı senaryolarını desteklerken, MTP .NET özgüdür.
Test projelerinin normal yürütülebilir dosyalar (dotnet rundoğrudan yürütülebilir çalıştırma dotnet watchve başlangıç projesi F5 akışları) gibi davranmasını istiyorsunuz. Microsoft.Testing.Platform MTP yürütülebilir önceliklidir, bu nedenle test uygulamaları yerel ve CI iş akışlarında standart .NET uygulamaları gibi çalışır.
Mevcut araçlar arasında uzun süreli tümleştirmelere güvenirsiniz. VSTest VSTest, mevcut ürünler, görevler ve işlem hatlarında en uzun uyumluluk izleme kaydına sahiptir. Ekosistemde MTP desteği büyüyor, ancak bazı tümleştirmeler VSTest'in gerisinde kalabilir.
Katı varsayılanları ve açık davranışı tercih ediyorsunuz. Microsoft.Testing.Platform MTP, hafif, isteğe bağlı bir uzantı modeli ve derleme sırasında kayıt ile belirlenimci yürütmeyi destekler. Örneğin, test çalışmadığında başarısız olabilir, ortama bağımlı değişkenliği azaltabilir ve ortam başına tek tek uzantıları devre dışı bırakmanıza olanak tanır.
Daha yumuşak ve geniş, geriye dönük uyumlu varsayılanları tercih ediyorsunuz. VSTest Her iki platform da geriye dönük uyumluluğu önemser. VSTest, farklı, mevcut araç zincirleri için uyumluluk odaklı varsayılanlara öncelik verirken, MTP kendi uzantı modeli içinde geriye dönük uyumluluk sağlar.
Geçerli iş akışınızda VSTest'e özgü bir sorun veya davranış tarafından engellenirsiniz. Microsoft.Testing.Platform Birçok senaryoda, çalışma zamanı modeli ve uzantı mimarisindeki farklılıklar nedeniyle aynı iş akışı MTP'ye taşındığında etkilenmez.

Özel kullanım örneğiniz listelenmiyorsa her iki platform da geçerli seçeneklerdir.

Tümleştirme ve araç desteği

Tümleştirme alanı VSTest Microsoft.Testing.Platform
IDE tümleştirmesi Visual Studio ve VSTest protokolüne ve bağdaştırıcılarına bağlı diğer araçlar arasında gelişmiş entegrasyon. Visual Studio ve Visual Studio Code senaryolarında desteklenir ve ekosistemin bazı bölümlerinde devam eden tümleştirme çalışmaları vardır.
CI ve dış araçlar Köklü Microsoft ve Microsoft dışı araçlar ve görevler için geniş yelpazede destek. Azure DevOps'da VSTest görevini (VSTest@3, vstest.console) veya .NET görevini (DotNetCoreCLI@2, dotnet test) kullanabilirsiniz. CI ve modern .NET iş akışlarında çalışır, ancak bazı üçüncü taraf tümleştirmeleri vsTest'in gerisinde kalabilir. Azure DevOps .NET görevini kullanın (DotNetCoreCLI@2, dotnet test).
dotnet test Davranış Varsayılan VSTest modu. VSTest bağımsız değişkenleri ve davranışı geçerlidir. Yerel MTP modu, .NET 10 SDK ve sonraki sürümlerde kullanılabilir.

Modlar ve bağımsız değişkenler hakkında tüm ayrıntılar için dotnet test bkz. dotnet test ile test etme.

Test çerçevenizden başlayın

VSTest'i seçerseniz

Microsoft.Testing.Platform'u seçerseniz

Sonraki Adımlar