Mengapa Visual Studio 2015/2017/2019 Test Runner tidak menemukan tes xUnit v2 saya

Jan 30 2016

UPDATE: Menambahkan 2019; mekanisme integrasi discovery / runner sama dengan tahun 2017 & 2015, jadi hal utama yang bisa salah adalah sama.


Saya telah membaca Mengapa pelari xUnit tidak menemukan pengujian saya, yang mencakup alasan xUnit tidak akan pernah dapat menemukan pengujian Anda tetapi masalah saya berbeda - saya yakin tidak ada yang halus terjadi dengan pengujian saya; (mereka telah bekerja di lingkungan lain, ini tampaknya hanya mesin saya) - Visual Studio Uji Runner di Visual Studio 2015 [Community Edition] hanya tidak menampilkan setiap tes saya. Saya tidak melakukan sesuatu yang menarik; tes menargetkan xUnit.net v2 di Desktop.

Saya telah melihat di jendela Output dan saya tidak melihat apa pun di bawah Test di Tampilkan output dari tab.

Jawaban

215 RubenBartelink Jan 30 2016 at 22:55
  1. Hilangkan pengecualian penemuan dari pertanyaan Anda; pergi ke Jendela keluaran (Ctrl-Alt-O), lalu alihkan keluaran acara dari dropdown (Shift-Alt-S) ke Tes dan pastikan tidak ada pengecualian penemuan

  2. Test | Test settings | Arsitektur prosesor default dapat membantu jika pengujian Anda khusus untuk x86 / x64 dan penemuan memicu pengecualian terkait bit, yaitu bukan AnyCpu

  3. Seperti yang disarankan dalam jawaban ini (berikan suara positif jika teknik ini membantu) menjalankan runner konsol desktop ( instruksi ) dapat menjadi pemeriksaan silang yang baik untuk menghilangkan kemungkinan lain, misalnya file konfigurasi yang rusak: -

    packages\xunit.runner.console.2.2.0\tools\xunit.console <tests.dll>

    CATATAN xunit.runner.consolePaket ini tidak digunakan lagi - ketika Anda mendapatkan sesuatu yang bekerja di VS, Anda akan dapat dotnet testmenjalankannya dalam konteks CI juga


Silakan baca dokumentasinya - lengkap, terbaru, termasuk info pemecahan masalah dan membutuhkan PR: -

Catatan penting: Jika sebelumnya Anda telah menginstal xUnit.net Visual Studio Runner VSIX (ekstensi), Anda harus membongkarnya terlebih dahulu. Pelari Visual Studio hanya didistribusikan melalui NuGet sekarang. Untuk menghapusnya, pergi ke Tools > Extensions and Updates . Gulir ke bagian bawah daftar, dan jika xUnit.net diinstal, hapus instalannya. Ini akan memaksa Anda untuk memulai ulang Visual Studio.

Jika Anda mengalami masalah dalam menemukan atau menjalankan tes, Anda mungkin menjadi korban dari cache runner yang rusak di dalam Visual Studio. Untuk mengosongkan cache ini, matikan semua contoh Visual Studio, kemudian hapus folder tersebut %TEMP%\VisualStudioTestExplorerExtensions. Juga pastikan proyek Anda hanya ditautkan ke versi tunggal dari paket NuGet runner Visual Studio ( xunit.runner.visualstudio).

Langkah-langkah berikut berhasil untuk saya:

  1. (Hanya jika Anda mencurigai ada kekacauan serius pada mesin Anda - secara umum kasus yang lebih umum adalah integrasi studio visual belum terpasang)

    Lakukan DEL %TEMP%\VisualStudioTestExplorerExtensionsseperti yang disarankan: -

    PS> del $env:TEMP\VisualStudioTestExplorerExtensions

  2. Instal Paket NuGet xunit.runner.visualstudiodi semua proyek pengujian

    • Paket:

      .paket\paket add nuget xunit.runner.visualstudio -i
      

      Anda harus mengakhiri dengan yang berikut ini dipaket.dependencies :

      nuget xunit.runner.visualstudio version_in_path: true

      Perhatikan bahwa version_in_path: truebit itu penting

    • Nuget: Buka Konsol Manajer Paket (Alt-T, N, O) dan

      Install-Package xunit.runner.visualstudio)
      

    Bangun kembali untuk memastikan xunit.runnerberakhir di direktori keluaran

  3. Tutup Test Explorer <- ini adalah bagian yang hilang bagi saya

  4. Buka kembali Test Explorer (Alt-S, W, T)

  5. Jalankan Semua tes (Ctrl R, A)

36 Max Jun 13 2017 at 18:40

Saya harus mengubah Pengaturan Tes setelah mengubah proyek uji CPU ke x64. Kemudian tes terdeteksi lagi.

32 Arman Apr 19 2017 at 02:48

Tidak ada solusi di atas yang berfungsi untuk saya (dotnetcore 1.1, VS2017). Inilah yang memperbaikinya:

  1. Tambahkan Paket NuGet Microsoft.TestPlatform.TestHost
  2. Tambahkan Paket NuGet Microsoft.NET.Test.Sdk

Itu adalah tambahan dari paket-paket yang saya instal sebelumnya:

  • xunit (2.3.0-beta1-build3642)
  • xunit.runner.visualstudio (2.3.0-beta1-build1309)
23 ChrisAelbrecht Oct 31 2017 at 20:13

Instal xunit.runner.visualstudiopaket untuk proyek uji

14 VenkatRamanan Oct 16 2017 at 15:21

Ikuti langkah-langkah ini:

  1. Perbarui Anda MsTest.TestAdapterdan MsTest.TestFramework dll'sdari nugget package manager.
  2. Bersihkan solusi Anda
  3. Bangun solusi Anda.
12 shaeed Oct 21 2019 at 17:40

Pastikan kelas pengujian Anda terbuka untuk umum .

11 TomMakin Nov 02 2016 at 04:30

Saya telah berjuang dengan ini sepanjang sore saat bekerja dengan proyek ASP Core dan xUnit 2.2.0. Solusi bagi saya adalah menambahkan referensi keMicrosoft.DotNet.InternalAbstractions

Saya menemukan ini ketika mencoba menjalankan proyek pengujian secara manual dotnet testyang gagal tetapi melaporkan bahwa InternalAbstractionsitu hilang. Saya tidak melihat kesalahan ini di jendela keluaran pengujian ketika penemuan otomatis gagal. Satu-satunya info yang saya lihat di jendela penemuan adalah kode kembali, yang tidak berarti apa-apa bagi saya pada saat itu, tetapi di belakang mungkin menunjukkan kesalahan.

9 Liam Mar 21 2017 at 23:13

Ini terjadi pada saya beberapa kali - ketika saya Membersihkan proyek dan Membangunnya lagi cenderung baik-baik saja.

7 curiousBoy Jun 19 2017 at 03:33

Setelah menghabiskan 2 hari ... tidak satu pun di atas yang berhasil untuk saya. Satu-satunya "solusi" adalah: Buka properti proyek -> Bangun Tab. Kemudian klik tombol Advanced di sudut kanan bawah panel. Ubah "Info Debug:" menjadi "penuh" dan klik OK.

Berikut tangkapan layarnya:

7 JawadSabir Feb 25 2018 at 14:28

Alasan dalam kasus saya adalah build target tidak sama antara project debugger dan test runner. Untuk menyatukan elemen-elemen itu:

  1. Tes> Pengaturan Tes> Arsitektur Prosesor Default. lalu pilih X64 atau X86.
  2. Proyek> (proyek Anda) Properti> Bangun (tab)> target platform.

Setelah keduanya identik, buat kembali solusi Anda, kemudian metode pengujian akan muncul untuk Anda.

6 SohamC Sep 07 2017 at 12:18

Saya menggunakan xUnit 2.2.0.

Masalah saya adalah solusi saya tidak dapat menemukan dll tertentu dan app.configmencoba menyelesaikannya. Kesalahan tidak muncul di jendela keluaran tes di Visual Studio.

Saya dapat mengidentifikasi kesalahan ketika saya menginstal xunit.runner.consoledan mencoba menjalankan tes melalui baris perintah.

Cara menjalankan pengujian xunit di CLI .

5 baumgarb Mar 05 2018 at 19:16

Saya dapat memberikan solusi untuk kasus tepi yang saya hadapi beberapa hari yang lalu. Ini tidak akan menjadi solusi yang sesuai dengan semua skenario yang dijelaskan di atas, namun, untuk kasus tepi saya telah memperbaikinya.

Saya memiliki masalah yang sama dengan VS 2017 terbaru (versi 15.5.7) dan XUnit 2.3.1. Paket xunit.runner.visualstudio telah diinstal, namun, pengujian tidak muncul di penjelajah pengujian internal VisualStudio.

Saya sedang mengerjakan proyek warisan yang menargetkan .NET framework 4.5. Namun, dimulai dengan versi 2.2. XUnit tidak mendukung .NET frameworks lebih rendah dari 4.5.2 (lihat Catatan Rilis - XUnit 2.2: 19 Februari 2017

Mengubah kerangka kerja target proyek uji ke versi> = 4.5.2 berhasil untuk saya. Anda tidak perlu mengubah versi proyek yang Anda uji, ini hanya tentang proyek uji itu sendiri.

5 ChamilaMaddumage May 05 2019 at 17:57

Saya memiliki masalah yang sama dengan Visual Studio 2019. Baru saja menginstal paket NuGet berikut dan masalah telah terpecahkan.

1). xUnit

2). xunit.runner.visualstudio

3). Microsoft.TestPlatform.TestHost

4). Microsoft.NET.Test.Sdk

3 cd747 Jul 14 2017 at 16:35

Hal ini juga dapat terjadi karena kotak centang build tidak dicentang untuk proyek platform saat ini dalam konfigurasi build. Klik Build | Manajer konfigurasi, lalu pastikan project pengujian memiliki tanda centang di kolom build untuk platform yang Anda gunakan (misalnya 'x86').

Ini pasti solusi yang berhasil untuk saya.

3 vullnetyy Sep 05 2017 at 16:29

Pastikan bahwa Anda belum menulis pengujian unit Anda di Perpustakaan Kelas Standar 2.0 .NET. Pelari visualstudio tidak mendukung pengujian yang sedang berjalan di pustaka kelas netstandard2.0 pada saat penulisan ini.

Periksa di sini untuk matriks Kompatibilitas Runner Uji:

https://xunit.github.io/#runners

3 live-love Oct 02 2017 at 06:45

Mengalami masalah serupa dengan VS tidak menemukan metode pengujian. Dalam kasus saya, saya memiliki kata kunci statis dengan metode tersebut, yang saya hapus dan berhasil.

[TestMethod]

Before: public static void Test1()

After: public void Test1()
2 stakx-nolongercontributing May 08 2017 at 01:23

Ada satu alasan lain yang dapat menyebabkan Test Explorer tidak menampilkan tes apa pun, dan itu berkaitan dengan .pdbformat file portabel baru yang diperkenalkan dengan Visual Studio 2017 / untuk .NET Core yang dapat merusak beberapa perkakas VS. (Latar Belakang: Lihat laporan bug "Mono.Cecil menyebabkan OutOfMemoryException dengan .csproj PDBs baru" .)

Apakah pengujian Anda tidak ditemukan karena format portabel .pdb(simbol debug) yang baru?

  • Buka jendela Output .
  • Ubah pilihan drop-down untuk Show output from to Tests .
  • Jika Anda melihat keluaran seperti berikut (mungkin diulang satu kali untuk setiap pengujian Anda), maka Anda mendapatkan masalah yang dijelaskan dalam jawaban ini:

    Exception System.OutOfMemoryException, Exception converting <SignatureOfYourTestMethod>
    Array dimensions exceeded supported range.
    

Jika ya, lakukan ini untuk menyelesaikan masalah:

  • Buka Properti proyek uji Anda (pilih proyek uji di Solution Explorer dan tekan Alt+ Enter).
  • Beralih ke tab Build .
  • Klik pada tombol Advanced ... (terletak di bagian paling akhir dari halaman tab itu).
  • Dalam drop-down berlabel informasi Debugging , memilih none, pdb-onlyatau full, tapi tidak portable . Pengaturan terakhir inilah yang menyebabkan tes tidak ditemukan.
  • Klik OK dan bersihkan & bangun kembali proyek Anda. Jika Anda ingin lebih yakin, buka direktori keluaran proyek pengujian Anda dan bersihkan semua .pdbfile sebelum membangun kembali. Sekarang tes Anda seharusnya sudah kembali.
2 ZachJ. Aug 25 2017 at 00:50

Dalam kasus saya, saya memiliki 2 proyek pengujian berbeda dalam solusinya. Tes Proyek 1 dapat ditemukan, tetapi tes Proyek 2 tidak bisa. Saya menemukan bahwa pertama-tama Bongkar Uji Proyek 1, kemudian tutup VS> membersihkan file temp saya> buka kembali solusi> bangun kembali, perbolehkan VS untuk menemukan tes Proyek 2 saya.

Saya berasumsi ada sesuatu yang bertentangan antara dua proyek pengujian dan ini adalah cara tercepat untuk membuat saya aktif dan berjalan dalam beberapa menit. Ketegaran bisa diselesaikan nanti :).

2 NafeezAbrar Feb 20 2018 at 16:34

Saya menderita masalah ini untuk waktu yang lama.

  • Saya memiliki sekitar 100 proyek versi berbeda yang diterapkan di server yang berbeda.

  • Memperbarui xunit dari 2.2.0 ke 2.3.1 bukanlah solusi karena build gagal di 2.3.1.

Kemudian saya baru saja memperbarui xunit.runner.visualstudio ke 2.3.1 dan semuanya mulai berfungsi dengan baik. Saya telah menggunakan perintah ini di konsol pengelola paket saya untuk memperbarui paket xunit.runner.visualstudio saya

Get-Project ComapanyName.ProjectName.*.Tests | Install-Package xunit.runner.visualstudio -Version 2.3.1
2 alvarodoune May 15 2019 at 10:20
  1. Tutup semua contoh Visual Studio
  2. Pergi ke% TEMP% \ VisualStudioTestExplorerExtensions \
  3. Hapus folder terkait specrun
  4. Coba lagi

beri tahu saya, terima kasih

1 TobiasJ Apr 03 2017 at 22:45

Penyebab paling umum bagi saya adalah Visual Studio mencoba menjalankan tes menggunakan arsitektur yang berbeda dari pustaka yang diuji. Sayangnya ada banyak tempat di mana tampaknya ini bisa salah.

Di VS 2017, coba buat file Run Settings, misalnya Default.runsettingsdalam proyek pengujian Anda. Jika lib utama Anda adalah x64, isinya harus:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <RunConfiguration>
    <TargetPlatform>x64</TargetPlatform>
  </RunConfiguration>
</RunSettings>

Kemudian pilih file ini dari Tes -> Pengaturan Tes -> Pilih File Pengaturan Tes.

Kemudian, di bawah Test -> Test Settings, Default Processor Architecture, pilih arsitektur yang benar lagi.

Pastikan untuk Membersihkan dan Membangun seluruh solusi. Anda mungkin perlu menutup dan membuka kembali jendela Test Explorer. Cari kesalahan tambahan di jendela Output -> Test, untuk petunjuk lebih lanjut tentang jenis arsitektur yang salah.

Untuk mengetahui entri Pengaturan Tes tambahan dapat ditemukan di sini .

1 Christian Jun 20 2017 at 20:30

Terjadi pada saya ketika saya melakukan percobaan berjalan pertama saya dengan IntelliTest di VS 2017.

Terkadang, ketika proyek uji dibuat secara otomatis oleh IntelliTest, rujukan rakitan ke Microsoft.ExtendedReflection( ... \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ Pex \ Microsoft.ExtendedReflection. dll ) hilang. Saat ditambahkan, Tes yang dihasilkan akan muncul di penjelajah tes setelah dikompilasi ulang.

1 AlexAlbu Jun 20 2017 at 21:22

Penafian: ini bukan tentang xunit dengan visual studio 2015, tetapi Visual Studio 2017 dengan aplikasi pengujian unit UWP (MSTest). Saya sampai di utas ini mencari hal yang sama jadi mungkin orang lain akan melakukan hal yang sama :)

Solusi bagi saya adalah memperbarui paket nuget untuk MSTest.TestAdapter dan MSTest.TestFramework. Tampaknya saat Anda membuat aplikasi pengujian unit untuk UWP, Anda tidak secara otomatis mendapatkan versi terbaru.

1 kDar Oct 15 2017 at 16:11

Masalah saya teratasi dengan menginstal nuget xunit.runner.visualstudio

1 CBBSpike Nov 30 2017 at 10:54

Dalam kasus saya, saya memiliki beberapa proyek uji dalam solusi yang sama, dan hanya satu proyek yang tidak menampilkan "Test Explorer"

Saya pergi ke "Kelola Paket Nuget untuk Solusi" dengan mengklik kanan pada solusi.

Saya perhatikan di bawah tab "Konsolidasi" ada beberapa paket nuget "Uji" yang tidak sinkron antara proyek-proyek tersebut. Saya mengklik "Instal" dan pengujian saya yang hilang muncul.

1 PaulG Feb 01 2018 at 19:52

Saya mencoba sebagian besar saran di atas dan tidak ada yang berhasil. Dalam kasus saya, saya berada dalam tim dan tes muncul untuk pengembang lain untuk solusi yang sama. Jadi, saya mencoba menghapus folder .vs saya, tetapi tidak berhasil juga.

Saya akhirnya menghapus folder lokal saya sepenuhnya dan mengkloning ulang repo. Itu menyelesaikannya untuk saya.

1 AndrewHomsky May 30 2018 at 00:30

Inilah solusi yang berhasil untuk kami. Bukan yang terbaik tapi mungkin bisa mendapatkan keuntungan.

Latar Belakang:

  • Skrip kami dikembangkan dengan VS 2013 dan menggunakan NUnit VS Adapter 2.1 ..
  • Baru-baru ini kami bermigrasi ke VS 2017 dan ketika membuka solusi yang sama - tes tidak akan ditampilkan di Test Explorer

Setelah Dibangun, kita akan melihat pesan ini:

[Informational] NUnit Adapter 3.10.0.21: Test discovery starting
[Informational] Assembly contains no NUnit 3.0 tests: C:\ihealautomatedTests\SeleniumTest\bin\x86\Debug\SeleniumTest.dll
[Informational] NUnit Adapter 3.10.0.21: Test discovery complete

Solusi (sementara):

  • Copot Pemasangan NUnit Adapter 3.10 ...
  • Instal NUnit VS Adapter 2.1 ..

Sekarang Tes ditampilkan.

GopalKrishnan Jul 17 2017 at 22:54

Juga periksa apakah file app.config yang benar-benar kosong (benar-benar kosong tanpa markup sama sekali) ada dalam proyek pengujian. Ini adalah penyebab kasus saya.

Emil Jul 20 2017 at 23:09

Dalam kasus saya, saya membuat "Konfigurasi Solusi" baru seperti yang ditunjukkan pada gambar. Jadi ketika saya memilih yang khusus saya sebagai "Prod", itu tidak mengenali TestMehods karena beberapa alasan. Mengubah kembali ke "Debug" memecahkan masalah

chrisdrobison Jul 21 2017 at 04:49

Saya tidak tahu apakah beberapa dari Anda juga menggunakan JustMock, tetapi saya harus menonaktifkan profiler di VS 2017 agar deteksi pengujian berfungsi.