Aracılığıyla paylaş


Microsoft.Testing.Platform'a genel bakış

Microsoft.Testing.Platform, sürekli tümleştirme (CI) pipelines, CLI, Visual Studio Test Gezgini ve VS Code Test Gezgini dahil olmak üzere tüm bağlamlarda testleri çalıştırmak için VSTest basit ve taşınabilir bir alternatiftir. Microsoft.Testing.Platform doğrudan test projelerinize eklenir ve testlerinizi çalıştırmak için gereken vstest.console veya dotnet test gibi başka uygulama bağımlılığı yoktur.

Tavsiye

VSTest ile Microsoft.Testing.Platform arasında seçim yapma konusunda yardıma ihtiyacınız varsa Test platformları genel bakış ile başlayın.

Microsoft.Testing.Platform'u kullanmaya karar verdiyseniz ve modelini, özelliklerini ve işletimsel davranışını anlamak istediğinizde bu makaleyi kullanın.

Microsoft.Testing.Platform açık kaynaktır. Microsoft.Testing.Platform GitHub deposunda kodu bulabilirsiniz.

Buradan başlayın

Sonraki ihtiyacınıza bağlı olarak aşağıdaki yolu kullanın:

Microsoft.Testing.Platform sütunları

Bu yeni test platformu, .NET Geliştirici Deneyimi Testi ekibinin deneyimi üzerine kurulmuştur ve 2016'da .NET Core'un yayımlanmasından bu yana karşılaşılan zorlukları ele almayı amaçlamaktadır. .NET Framework ile .NET Core/.NET arasında yüksek düzeyde uyumluluk olsa da, eklenti sistemi ve .NET derlemelerinin yeni olası biçim faktörleri gibi bazı önemli özellikler, yeni çalışma zamanı özelliğinin güncel VSTest platformu mimarisiyle gelişmesini veya tam olarak desteklenmesini karmaşık hale getirmektedir.

Yeni test platformunun evrimi için temel etmenler aşağıda ayrıntılı olarak yer alır:

  • Determinizm: Aynı testleri farklı bağlamlarda (yerel, CI) çalıştırmanın aynı sonucu üretmesini sağlamak. Yeni çalışma zamanı, bir test çalıştırmasını koordine etmek için yansımayı veya başka bir dinamik .NET çalışma zamanı özelliğini kullanmaz.

  • Çalışma Zamanı saydamlığı: Test çalışma zamanı test çerçevesi koduyla çakışmaz, AppDomain veya AssemblyLoadContextgibi yalıtılmış bağlamlar oluşturmaz ve yansıma veya özel derleme çözümleyicileri kullanmaz.

  • Uzantıların derleme zamanı kaydı: Test çerçeveleri ve işlem içi/dışı uzantılar gibi uzantılar, determinizmin sağlanması ve tutarsızlıkların algılanmasını kolaylaştırmak için derleme zamanında kaydedilir.

  • Zero bağımlılıkları: Platformun çekirdeği, desteklenen çalışma zamanları dışında bağımlılıkları olmayan tek bir .NET derlemesi olan Microsoft.Testing.Platform.dll'dir.

  • Hostable: Test çalışma zamanı herhangi bir .NET uygulamasında barındırılabilir. Bir konsol uygulaması genellikle testleri çalıştırmak için kullanılırken, herhangi bir .NET uygulamasında bir test uygulaması oluşturabilirsiniz. Bu, sınırlamaların olabileceği cihazlar veya tarayıcılar gibi özel bağlamlar içinde testleri çalıştırmanıza olanak tanır.

  • Tüm .NET form faktörlerini destekleyin: Yerel AOT dahil olmak üzere geçerli ve gelecekteki .NET form faktörlerini destekleyin.

  • Performant: Çalışma zamanını temel olmayan kodla şişirmemek için özellikler ve uzantı noktaları arasında doğru dengeyi bulma. Yeni test platformu, bir test çalıştırmasının nasıl yapılacağına dair uygulama ayrıntıları sağlamak yerine, onu "düzenlemek" için tasarlanmıştır.

  • Yeterince Genişletilebilir: Yeni platform, genişletme noktaları üzerine kurularak çalışma zamanı yürütmesinin maksimum düzeyde özelleştirilmesine olanak tanır. Test işlemi ana bilgisayarını yapılandırmanıza, test işlemini gözlemlemenize ve test ana bilgisayarı işlemi içindeki test çerçevesindeki bilgileri kullanmanıza olanak tanır.

  • Tek modül dağıtımı: Barındırılabilirlik özelliği, tek bir modül dağıtım modelini etkinleştirir. Burada tek bir derleme sonucu, farklı yürütülebilir modülleri göndermeye gerek kalmadan hem işlem dışı hem de işlem içi tüm genişletilebilirlik noktalarını desteklemek için kullanılabilir.

Desteklenen test çerçeveleri

Desteklenen hedef çerçeveler

Microsoft.Testing.Platform .NET (.NET 8 ve üzeri), .NET Framework'i (sürüm 4.6.2 ve üzeri) destekler ve diğer çalışma zamanlarıyla en yüksek uyumluluk için NETStandard 2.0'ı hedefler.

Testleri çalıştırma ve hatalarını ayıklama

CLI, Visual Studio, Visual Studio Code ve CI pipelines MTP test projelerini çalıştırma ve hata ayıklama hakkında ayrıntılı yönergeler için bkz. Testleri çalıştırma ve hatalarını ayıklama.

Seçenekler

Platform ve uzantı komut satırı seçeneklerinin tam listesi için bkz. Microsoft.Testing.Platform CLI seçenekleri başvurusu.

MSBuild entegrasyonu

Microsoft.Testing.Platform.MSBuild NuGet paketi, MSBuild ile Microsoft.Testing.Platform için çeşitli tümleştirmeler sağlar:

  • dotnet testiçin destek. Daha fazla bilgi için dotnet test ile test etme kısmına bakın.
  • Visual Studio ve Visual Studio Code Test Gezgini tarafından gereksinim duyulan ProjectCapability desteği.
  • Giriş noktasının otomatik olarak oluşturulması (Main yöntemi).
  • Yapılandırma dosyasının otomatik olarak oluşturulması.
  • Yüklü uzantı paketlerinin otomatik olarak algılanması ve kaydedilmesi.

Bu paket etkin olduğunda (MSTest, NUnit ve xUnit runners için varsayılan), nuget uzantısı paketini yüklemek tek gereken şey; uzantılar kod değişikliği olmadan otomatik olarak kaydedilir. <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> ayarını devre dışı bırakırsanız otomatik oluşturulan giriş noktasını iptal etmek için, uzantıları yöntemine manuel olarak kaydetmeniz gerekir. Her uzantı sayfası, el ile yapılan kayıt çağrısını belgeler.

Uyarı

Bu tümleştirme geçişli bir şekilde çalışır (bu pakete referans veren bir projeye referans veren başka bir proje, pakete doğrudan referans veriyormuş gibi davranır) ve IsTestingPlatformApplication MSBuild özelliği aracılığıyla devre dışı bırakılabilir.

Ayrıca bkz.