Aracılığıyla paylaş


Özel uzantılar oluşturma

Bu makale, Microsoft.Testing.Platform için özel test çerçeveleri veya uzantılar oluşturan geliştiricilere yöneliktir.

Not

Tam örnek kod için Microsoft Test Framework deposundaki TestingPlatformExamples bölümüne bakın.

Uzantı noktası özeti

Uzantı noktası İşlemde/İşlem dışı Amaç
ITestFramework Devam eden işlem Tek zorunlu uzantı. Testleri bulup çalıştırır.
IDataConsumer Devam eden işlem İleti veri yolundan test verilerine abone olur ve bu verileri işler.
ITestSessionLifetimeHandler Devam eden işlem Test oturumu öncesinde ve sonrasında kod çalıştırır.
ITestApplicationLifecycleCallbacks Devam eden işlem Kodun çalıştırılmasını test hostunun en başında ve tam sonunda gerçekleştirir.
ICommandLineOptionsProvider Her ikisi Özel komut satırı seçenekleri ekler.
ITestHostEnvironmentVariableProvider İşlem dışı Test konağı başlamadan önce ortam değişkenlerini ayarlar.
ITestHostProcessLifetimeHandler İşlem dışı Test ana bilgisayar işlemini harici olarak gözlemler.

İşlem içi ve işlem dışı uzantılar karşılaştırması

Uzantılar iki türe ayrılır:

  • İşlem içi uzantılar test çerçevesiyle birlikte test ana bilgisayar işlemi içinde çalışır. Bunları builder.TestHost aracılığıyla kaydedin:

    var builder = await TestApplication.CreateBuilderAsync(args);
    builder.TestHost.AddXXX(/* ... */);
    
  • İşlem dışı uzantılar , test ana bilgisayarını gözlemleyen ayrı bir işlemde çalışır. Bunları builder.TestHostControllers aracılığıyla kaydedin:

    var builder = await TestApplication.CreateBuilderAsync(args);
    builder.TestHostControllers.AddXXX(/* ... */);
    

İşlem dışı uzantılar şu durumlarda gereklidir:

  • Test konağı başlamadan önce ortam değişkenlerini ayarlamanız gerekir.
  • Kullanıcı kodu çökebilir veya süreci aksatabilir, bu nedenle test ana bilgisayarını dışarıdan izlemeniz gerekir.

İşlem dışı uzantılar kaydedildiğinde platform otomatik olarak ikinci bir işlem başlatır.

IExtension arabirimi

Tüm uzantı noktaları, kimlik belirleme ve kabul etme/geri çevirme sağlayan öğesinden IExtensiondevralır:

public interface IExtension
{
    string Uid { get; }
    string Version { get; }
    string DisplayName { get; }
    string Description { get; }
    Task<bool> IsEnabledAsync();
}
  • Uid: Uzantı için benzersiz bir tanımlayıcı. Çakışmaları önlemek için benzersiz bir değer seçin.
  • Version: Anlamsal sürüm oluşturma kullanılarak uzantının sürümü.
  • DisplayName: Günlüklerde ve --info çıkışta görünen kullanıcı dostu bir ad.
  • Description: Çıktıda --info görünen bir açıklama.
  • IsEnabledAsync(): Uzantıyı oturumdan dışlamak için geri dönün false. Kararlar genellikle yapılandırma veya komut satırı seçeneklerine dayanır.
  • Test çerçevesi oluşturma: Özel ITestFramework bir uygulama oluşturun, istekleri işleyin ve test sonuçlarını rapor edin.
  • Uzantılar oluşturun: Veri tüketicileri, oturum işleyicileri ve işlem izleyicileri gibi süreç içi ve süreç dışı uzantılar oluşturun.
  • VSTest Köprüsü: Mevcut VSTest tabanlı test çerçevelerinin Microsoft.Testing.Platform'a geçişini basitleştirin.
  • Özellikler: Çerçeve ve uzantı özelliklerini bildirme ve sorgulama.
  • Services: Access yapılandırması, günlüğe kaydetme, ileti veri yolu ve diğer platform hizmetleri.