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

Microsoft.Testing.Platformkomut 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'e basit ve taşınabilir bir alternatiftir. Bu makalede, MSTest çalıştırıcısı 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'sı ve Microsoft.TestPlatform NuGet paketinde tek başına bir araç olarak gönderilir. VSTest, doğrudan veya aracılığıyla dotnet testkullanılabilen, adlı vstest.console.exetestleri çalıştırmak için bir çalıştırıcı yürütülebilir dosyası 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

ve VSTest hakkında Microsoft.Testing.Platform 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 Platformu olarak da bilinen test araçlarının bir koleksiyonudur. VSTest kaynak kodu açık kaynaktır ve microsoft/vstest GitHub deposunda kullanılabilir. Kod ad alanını Microsoft.TestPlatform.* 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, Microsoft.Testing.Platform NuGet paketini ve ad alanındaki Microsoft.Testing.* diğer kitaplıkları temel alır. VSTest gibi, Microsoft.Testing.Platform açık kaynaktır ve bir microsoft/testfx GitHub deposuna sahiptir.

İletişim protokolü (önizleme)

Not

Visual Studio Test Gezgini, 17.10'dan itibaren önizleme sürümlerinde 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 ve eski protokolü kullanır vstest.console.exe .

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 deposunda belgelenmiş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 csproj'yi düzenleyebilir ve özelliği kaldırabilirsiniz TestingPlatformServer .

<ItemGroup>
    <ProjectCapability Remove="TestingPlatformServer" />
</ItemGroup>

Yürütülebilir Dosyalar

VSTest, , ve datacollector.exegibi vstest.console.exetesthost.exebirden çok yürütülebilir dosya ile birlikte kullanılır. Ancak, MSTest 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.