Bagikan melalui


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.exedan 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.