Perbandingan Microsoft.Testing.Platform dan VSTest
Microsoft.Testing.Platform
adalah alternatif ringan dan portabel untuk VSTest untuk menjalankan pengujian di baris perintah, dalam alur integrasi berkelanjutan (CI), di Visual Studio Test Explorer, dan di Visual Studio Code. Dalam artikel ini, Anda mempelajari perbedaan utama antara pelari MSTest dan VSTest.
Perbedaan dalam eksekusi pengujian
Pengujian dijalankan dengan cara yang berbeda tergantung pada runner.
Menjalankan pengujian VSTest
VSTest dikirim dengan Visual Studio, .NET SDK, dan sebagai alat mandiri dalam paket NuGet Microsoft.TestPlatform . VSTest menggunakan runner yang dapat dieksekusi untuk menjalankan pengujian, yang disebut vstest.console.exe
, yang dapat digunakan secara langsung atau melalui dotnet test
.
Menjalankan pengujian Microsoft.Testing.Platform
Microsoft.Testing.Platform disematkan langsung ke dalam proyek pengujian Anda dan tidak mengirimkan executable tambahan. Saat Anda menjalankan proyek yang dapat dieksekusi, pengujian Anda berjalan. Untuk informasi selengkapnya tentang menjalankan pengujian Microsoft.Testing.Platform, lihat Gambaran umum Microsoft.Testing.Platform: Menjalankan dan men-debug pengujian.
Paket Namespace dan NuGet
Untuk membiasakan diri dengan Microsoft.Testing.Platform
dan VSTest, sangat membantu untuk memahami namespace layanan dan paket NuGet yang digunakan oleh masing-masing.
Namespace LAYANAN VSTest
VSTest adalah kumpulan alat pengujian yang juga dikenal sebagai Platform Pengujian. Kode sumber VSTest adalah sumber terbuka dan tersedia di repositori GitHub microsoft/vstest . Kode menggunakan Microsoft.TestPlatform.*
namespace layanan.
VSTest dapat diperluas dan jenis umum ditempatkan dalam paket NuGet Microsoft.TestPlatform.ObjectModel .
Namespace Microsoft.Testing.Platform
Microsoft.Testing.Platform didasarkan pada paket NuGet Microsoft.Testing.Platform dan pustaka lain di Microsoft.Testing.*
namespace layanan. Seperti VSTest, Microsoft.Testing.Platform
adalah sumber terbuka dan memiliki repositori GitHub microsoft/testfx .
Protokol komunikasi (pratinjau)
Catatan
Visual Studio Test Explorer mendukung protokol Microsoft.Testing.Platform dalam versi pratinjau sejak 17.10 dan seterusnya. Jika Anda menjalankan/men-debug pengujian menggunakan versi Visual Studio yang lebih lama, Test Explorer akan menggunakan vstest.console.exe
dan protokol lama untuk menjalankan pengujian ini.
Microsoft.Testing.Platform menggunakan protokol berbasis JSON-RPC untuk berkomunikasi antara Visual Studio dan proses uji runner. Protokol didokumenkan dalam repositori MSTest GitHub.
VSTest juga menggunakan protokol komunikasi berbasis JSON, tetapi tidak berbasis JSON-RPC.
Menonaktifkan protokol baru
Untuk menonaktifkan penggunaan protokol baru di Test Explorer, Anda dapat mengedit csproj dan menghapus TestingPlatformServer
kemampuan.
<ItemGroup>
<ProjectCapability Remove="TestingPlatformServer" />
</ItemGroup>
Dapat dijalankan
VSTest mengirimkan beberapa executable, terutama vstest.console.exe
, , testhost.exe
dan datacollector.exe
. Namun, MSTest disematkan langsung ke dalam proyek pengujian Anda dan tidak mengirimkan executable lainnya. Proyek pengujian yang dapat dieksekusi dikompilasi untuk digunakan untuk menghosting semua alat pengujian dan melakukan semua tugas yang diperlukan untuk menjalankan pengujian.