Saya ingin menggunakan mstest.exe untuk menjalankan pengujian unit saya di server build, tetapi saya tidak ingin menginstal Visual Studio di server build. Bisakah saya menginstal MSTest tanpa Visual Studio?
Saya ingin menggunakan mstest.exe untuk menjalankan pengujian unit saya di server build, tetapi saya tidak ingin menginstal Visual Studio di server build. Bisakah saya menginstal MSTest tanpa Visual Studio?
Jawaban:
Dimungkinkan untuk menjalankan mstest.exe tanpa studio visual.
Unduh salah satu Agen untuk Visual Studio ISO di bawah ini dan instal Agen Uji di server:
Visual Studio 2017 (disk space 127MB, kurang dari itu untuk di-download)
Visual Studio 2015 (pengaturan 128MB, ruang disk 2GB diperlukan)
Visual Studio 2012 (224MB)
Visual Studio 2013 (287MB)
Visual Studio 2010 (515MB)
Ini menginstal semua yang diperlukan untuk menjalankan mstest.exe dari baris perintah dan bobotnya jauh lebih ringan daripada studio visual. ~ Download 500mb dan sekitar ~ 300mb untuk menginstal hanya agen tes jika saya ingat dengan benar.
MEMPERBARUI
Untuk versi yang lebih lama dari VS 2017, lihat di sini:
Jawaban ini berkaitan secara khusus dengan Visual Studio 2017, dan jawabannya adalah ya . Perlu diketahui, bagaimanapun, bahwa Microsoft (masih) tidak menyediakan API resmi apa pun untuk menemukan executable yang relevan ( MSBuild.exe
dan MSTest.exe
), jadi Anda terjebak membaca kunci registri dan / atau memeriksa berbagai direktori untuk menemukan file-file ini . Anda telah diperingatkan.
MSTest.TestFramework
ke dalam proyek tersebut dan hapus referensinya Microsoft.VisualStudio.QualityTools.UnitTestFramework
. Sekarang yang Anda butuhkan hanyalah menginstal Visual Studio 2017 Build Tools dan memanggil msbuild.exe
untuk melakukan build.MSTest.exe
dan vstest.console.exe
yang kemudian dapat Anda panggil. Perhatikan bahwa sebenarnya mencari tahu di mana executable ini berada sangat merepotkan, karena mereka tidak akan ada dalam struktur direktori yang sama seperti MSBuild.exe
di Build Tools.Terakhir, dan yang sangat penting: jika Anda benar-benar menggunakan MSTest.TestFramework
dan masih perlu menemukan dan menjalankan pengujian dari dalam Visual Studio IDE, Anda juga perlu MSTest.TestAdapter
diinstal di proyek pengujian unit Anda.
1: Meskipun VS2017 mendukung penginstalan berdampingan, VS2017 menggunakan kunci registri tunggal yang hanya mencatat penginstalan terbaru. Oleh karena itu, jika Anda menginstal Test Agent terakhir, kunci tersebut akan mengarah ke direktori instalnya ... tetapi Test Agent tidak menyertakannya MSBuild.exe
, sehingga kode apa pun yang mengandalkan kunci registri ini untuk mengetahui jalur yang dapat dieksekusi, akan gagal. Mengapa Microsoft tidak dapat menjadikan Test Agent sebagai bagian opsional dari Build Tools (sehingga semua EXE berada dalam hierarki direktori yang sama) adalah tebakan siapa pun.
File extension specified '.webtest' is not a valid test extension.
untuk saya.
vswhere
lebih baik daripada tidak sama sekali, tetapi Anda masih harus membuat asumsi di mana MSBuild berada relatif terhadap direktori instalasi VS ... jika (kapan?) Microsoft memutuskan untuk merelokasi salah satu dari executable tersebut, asumsi itu tidak lagi valid . Mengapa Microsoft tidak dapat atau tidak akan membuat cara terprogram untuk mendapatkan jalur ke MSBuild / MSTest / VSTest (sebagai lawan dari direktori instalasi VS, yang tidak dipedulikan oleh siapa pun) tetap berada di luar jangkauan saya.
No test is available in C:\Users\..\Desktop\MyExeName.exe...
. Saya telah membuka pertanyaan tentang SO . Jika Anda memiliki petunjuk, saya menghargai bantuan Anda.
Saya pikir Anda mungkin bisa, tetapi itu pasti tidak didukung.
Saya telah menemukan artikel blog ini ditulis oleh seseorang yang mengklaim memiliki MSTest berfungsi tanpa menginstal Visual Studio.
@crocpulsar, Anda perlu menginstal Visual Studio di server build Anda, tetapi Anda TIDAK perlu membeli lisensi tambahan .
Ada terlalu banyak ketergantungan agar build & MSTest berfungsi tanpa menginstal VS, dan ini pasti tidak didukung.
Selama orang yang memulai build memiliki lisensi, Anda tidak memerlukannya untuk server build. Ini telah terjadi sejak hari-hari kelam tahun 2005, dan selama ada persamaan edisi maka Anda baik-baik saja.
Jika setiap orang di tim Anda memiliki Ultimate, maka Anda bebas menginstalnya di server build; tetapi jika salah satu anggota tim Anda memiliki Premium, maka idealnya Anda harus menginstal Premium di server build. Ini juga mengaktifkan banyak bit lain seperti Cakupan Kode, Analisis Dampak Pengujian, dan Validasi Arsitektur.
Saya baru saja membuat ini berfungsi di server saya tanpa menginstal Visual Studio 2017 IDE. Persyaratan saya adalah
Saya harus melakukan kombinasi dari beberapa hal yang dinyatakan dalam jawaban lain dan kemudian juga satu sama lain di sini .
VS2017:
Langkah 3 adalah memperbaiki masalah berikut:
"Tidak dapat menyelesaikan referensi ini. Tidak dapat menemukan rakitan" Microsoft.VisualStudio.QualityTools.UnitTestFramework ""
Yang kemudian menyebabkan:
"galat CS0234: Jenis atau nama ruang nama 'VisualStudio' tidak ada di ruang nama 'Microsoft' (apakah Anda kehilangan referensi perakitan?)"
Saya tidak perlu menambahkan referensi apa pun ke proyek. Namun, jalur ke vstest.console.exe terdapat di folder TestAgent (bagi saya itu adalah "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ TestAgent \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow" )
Berikut adalah langkah-langkah yang saya ambil agar server build saya menjalankan MsTest tanpa menginstal VS 2012:
Daftarkan 'msdia110.dll' dengan c: /windows/syswow64/regsvr32.exe / i '../mstest/assemblies/msdia110.dll'(Ini menimbulkan kesalahan, tetapi untuk beberapa alasan masih berfungsi. Saya menjalankannya beberapa kali dan mencoba versi regsvr32.exe yang berbeda sebelum saya memeriksa, tetapi itu ada di registri)
Tambahkan variabel lingkungan 'MSTEST_HOME' dan setel ke 'c: \ dev \ mstest \' atau ke jalur Anda. Saya menggunakan variabel lingkungan dalam skrip build saya.
Debugging kesalahan eksekusi MsTest:
Tambahkan ke 'MsTest.exe.config'
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="EqtListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MsTest.log" />
</listeners>
</trace>
<switches>
<add name="EqtTraceLevel" value="Verbose" />
</switches>
</system.diagnostics>
Jika Anda perlu menjalankan alat webtest mstest.exe maka Anda dapat menginstal uji coba Visual Studio Enterprise dan pastikan untuk menjalankannya setidaknya sekali (cukup memulainya) di bawah akun di mana pengujian akan berjalan tanpa perlu tambahan apa pun. Jadi jika pengujian Anda berjalan di bawah akun Sistem maka Anda perlu menggunakan sesuatu seperti di bawah ini
PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\mstest.exe"
Microsoft (R) Test Execution Command Line Tool Version 15.0.27520.0
Copyright (c) Microsoft Corporation. All rights reserved.
Please specify tests to run, or specify the /publish switch to publish results.
For switch syntax, type "MSTest /help"
MSTest diumumkan untuk pengguna .NET Core . Pengumuman memiliki contoh penggunaan dengan dotnet
alat tersebut. Saya sendiri belum memikirkan bagaimana cara mendapatkan mstest
eksekusi mandiri .