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'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 test
kullanılabilen, adlı vstest.console.exe
testleri ç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.exe
gibi vstest.console.exe
testhost.exe
birden ç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.