Aracılığıyla paylaş


Microsoft.Testing.Platform ve VSTest karşılaştırması

Microsoft.Testing.Platform komut satırında, sürekli tümleştirme (CI) işlem hatlarında, Visual Studio Test Gezgini'nde ve Visual Studio Code'da testleri çalıştırmak için VSTest basit ve taşınabilir bir alternatiftir. Bu makalede, Microsoft.Testing.Platform ile VSTest arasındaki temel farkları öğreneceksiniz.

Test yürütmedeki farklar

Testler çalıştırıcıya bağlı olarak farklı şekillerde yürütülür.

VSTest testlerini yürütme

VSTest, Visual Studio, .NET SDK ve Microsoft.TestPlatform NuGet paketinde tek başına bir araç olarak gönderilir. VSTest, testleri çalıştırmak için doğrudan veya vstest.console.exearacılığıyla kullanılabilecek dotnet testadlı bir çalıştırıcı kullanır.

Microsoft.Testing.Platform testlerini yürütme

Microsoft.Testing.Platform doğrudan test projenize eklenir ve ek yürütülebilir dosya göndermez. Proje yürütülebilir dosyanızı çalıştırdığınızda testleriniz çalıştırılır. Microsoft.Testing.Platform testlerini çalıştırma hakkında daha fazla bilgi için bkz. Microsoft.Testing.Platform'a genel bakış:testleri çalıştırma ve hatalarını ayıklama.

Ad Alanları ve NuGet paketleri

Microsoft.Testing.Platform ve VSTest hakkında bilgi edinmek için, her biri tarafından kullanılan ad alanlarını ve NuGet paketlerini anlamanız yararlı olur.

VSTest ad alanları

VSTest, Test Platformuolarak da bilinen bir test araçları koleksiyonudur. VSTest kaynak kodu açık kaynaktır ve microsoft/vstest GitHub deposunda kullanılabilir. Kod, Microsoft.TestPlatform.* ad alanını kullanır.

VSTest genişletilebilirdir ve yaygın türler Microsoft.TestPlatform.ObjectModel NuGet paketine yerleştirilir.

Microsoft.Testing.Platform ad alanları

Microsoft.Testing.Platform, ad alanındaki Microsoft.Testing.* NuGet paketini ve diğer kitaplıkları temel alır. VSTest gibi Microsoft.Testing.Platform de açık kaynaklıdır ve bir microsoft/testfx GitHub deposuna sahiptir.

İletişim protokolü

Not

Visual Studio Test Gezgini, 17.12'den itibaren Microsoft.Testing.Platform protokollerini destekler. Visual Studio'nun önceki sürümlerini kullanarak testlerinizi çalıştırır/hatalarını ayıklarsanız, Test Gezgini bu testleri çalıştırmak için vstest.console.exe ve eski protokolü kullanır.

Microsoft.Testing.Platform, Visual Studio ile test çalıştırıcısı işlemi arasında iletişim kurmak için JSON-RPC tabanlı bir protokol kullanır. Protokol, MSTest GitHub deposundabelgelenmiştir.

VSTest ayrıca JSON tabanlı bir iletişim protokolü kullanır, ancak JSON-RPC tabanlı değildir.

Yeni protokolü devre dışı bırakma

Test Gezgini'nde yeni protokolün kullanımını devre dışı bırakmak için projenizi düzenleyerek şu özelliği ekleyebilirsiniz: <DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>.

Ayrıca Visual Studio'da Önizleme Özellikleri seçenekleri'ne gidip "Test platformu sunucu modunu kullan" seçeneğinin seçimini kaldırabilirsiniz.

Yürütülebilir Dosyalar

VSTest, vstest.console.exe, testhost.exeve datacollector.exegibi birden çok yürütülebilir dosya sağlar. Ancak Microsoft.Testing.Platform doğrudan test projenize eklenir ve başka yürütülebilir dosya göndermez. Test projenizin derlediği yürütülebilir dosya, tüm test araçlarını barındırmak ve testleri çalıştırmak için gereken tüm görevleri gerçekleştirmek için kullanılır.

Ayrıca bakınız