UPDATE: Menambahkan 2019; mekanisme integrasi penemuan / pelari sama seperti per 2017 & 2015, jadi hal-hal utama yang bisa salah adalah sama.
Saya telah membaca Mengapa pelari xUnit tidak menemukan tes saya, yang mencakup alasan xUnit tidak akan pernah dapat menemukan tes Anda tetapi masalah saya berbeda - saya yakin tidak ada yang terjadi dengan tes 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 menyenangkan; target tes xUnit.net v2 di Desktop.
Saya telah melihat di jendela Output dan saya tidak melihat apa-apa di bawah Test di Show output from tabs.
.net
visual-studio
unit-testing
visual-studio-2015
xunit2
Ruben Bartelink
sumber
sumber
Jawaban:
Hilangkan pengecualian penemuan dari pertanyaan Anda; buka Window output (Ctrl-Alt-O), lalu alihkan show output dari dropdown (Shift-Alt-S) ke Tests dan pastikan tidak ada pengecualian penemuan
Tes | Pengaturan tes | Arsitektur prosesor default dapat membantu jika pengujian Anda spesifik x86 / x64 dan penemuan memicu pengecualian terkait bittedness, yaitu bukan AnyCpu
Seperti yang disarankan dalam jawaban ini (upvote jika tekniknya membantu) menjalankan runner konsol desktop ( instruksi ) dapat menjadi pemeriksaan silang yang baik untuk menghilangkan kemungkinan lain, misalnya file konfigurasi yang rusak: -
CATATAN:
xunit.runner.console
Paket ini tidak digunakan lagi - saat Anda mendapatkan barang yang bekerja di VS, Anda akan dapatdotnet test
menjalankannya dalam konteks CI jugaBaca dokumentasi - komprehensif, mutakhir, termasuk info pemecahan masalah dan lakukan PR: -
Langkah-langkah berikut ini berhasil bagi saya:
(Hanya jika Anda mencurigai ada kekacauan serius pada mesin Anda - secara umum kasus yang lebih umum adalah bahwa integrasi visual studio belum diinstal)
Lakukan
DEL %TEMP%\VisualStudioTestExplorerExtensions
seperti yang disarankan: -PS> del $env:TEMP\VisualStudioTestExplorerExtensions
Instal Paket NuGet
xunit.runner.visualstudio
di semua proyek ujiPaket:
Anda harus mengakhiri dengan yang berikut ini di
paket.dependencies
:nuget xunit.runner.visualstudio version_in_path: true
Perhatikan
version_in_path: true
bit itu pentingNuget: Pergi ke Package Manager Console (Alt-T, N, O) dan
Bangun kembali untuk memastikan
xunit.runner
berakhir di dir keluaranTutup Test Explorer <- ini adalah bagian yang hilang untuk saya
Buka kembali Test Explorer (Alt-S, W, T)
Jalankan Semua tes (Ctrl R, A)
sumber
%TEMP%\VisualStudioTestExplorerExtensions
dan memulai kembali VS akhirnya berhasil!Saya harus mengubah Pengaturan Tes setelah mengubah proyek tes CPU ke x64. Kemudian tes tempat terdeteksi lagi.
sumber
Tidak ada solusi di atas yang berfungsi untuk saya (dotnetcore 1.1, VS2017). Inilah yang diperbaiki:
Microsoft.TestPlatform.TestHost
Microsoft.NET.Test.Sdk
Itu adalah tambahan dari paket-paket ini yang saya instal sebelumnya:
sumber
TestPlatform.TestHost
hanya diperlukan saat bermigrasi dari VS 2017 ke VS 2019.Instal
xunit.runner.visualstudio
paket untuk proyek ujisumber
Ikuti langkah-langkah ini:
MsTest.TestAdapter
danMsTest.TestFramework
dll's
dari Andanugget package manager
.sumber
%TEMP%\VisualStudioTestExplorerExtensions
dan masih kadang-kadang saya harus menjalankan tes dari konsol.Saya telah berjuang dengan ini sepanjang sore sambil bekerja dengan proyek ASP Core dan xUnit 2.2.0. Solusi bagi saya adalah menambahkan referensi ke
Microsoft.DotNet.InternalAbstractions
Saya menemukan ini ketika mencoba menjalankan proyek uji secara manual dengan
dotnet test
yang gagal tetapi melaporkan bahwaInternalAbstractions
ada yang hilang. Saya tidak melihat kesalahan ini di jendela output tes 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.sumber
Itu terjadi pada saya beberapa kali - ketika saya Bersihkan proyek dan Membangunnya lagi itu cenderung baik-baik saja.
sumber
Pastikan kelas tes Anda bersifat publik .
sumber
Alasan dalam kasus saya adalah target build tidak sama antara proyek debugger dan test runner. Untuk menyatukan elemen-elemen itu:
Setelah identik, buat kembali solusi Anda lalu metode pengujian akan muncul untuk Anda.
sumber
Setelah menghabiskan 2 hari ... tidak ada yang di atas bekerja untuk saya. Satu-satunya "solusi" adalah: Buka properti proyek -> Build Tab. Kemudian klik tombol Advanced di sudut kanan bawah panel. Ubah "Info Debug:" menjadi "penuh" dan klik OK.
Berikut adalah cuplikan layar:
sumber
Saya menggunakan xUnit 2.2.0.
Masalah saya adalah solusi saya tidak dapat menemukan dll dan
app.config
sedang mencoba menyelesaikannya. Kesalahan tidak muncul di jendela output tes di Visual Studio.Saya dapat mengidentifikasi kesalahan ketika saya menginstal
xunit.runner.console
dan mencoba menjalankan tes melalui baris perintah.Cara menjalankan tes xunit di CLI .
sumber
Saya dapat memberikan solusi untuk kasus tepi yang saya temui beberapa hari yang lalu. Itu tidak akan menjadi solusi yang cocok dengan semua skenario yang dijelaskan di atas, bagaimanapun, untuk kasus tepi saya sudah memperbaikinya.
Saya memiliki masalah yang sama dengan VS 2017 terbaru (versi 15.5.7) dan XUnit 2.3.1. Paket xunit.runner.visualstudio diinstal, namun, tes tersebut tidak muncul di dalam penjelajah uji bawaan VisualStudio.
Saya sedang mengerjakan proyek lawas 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 target proyek uji ke versi> = 4.5.2 bekerja untuk saya. Anda tidak perlu mengubah versi proyek yang Anda uji, itu hanya tentang proyek uji itu sendiri.
sumber
Saya memiliki masalah yang sama dengan Visual Studio 2019. Baru saja menginstal paket NuGet berikut dan masalah ini terpecahkan.
1). xUnit
2). xunit.runner.visualstudio
3). Microsoft.TestPlatform.TestHost
4). Microsoft.NET.Test.Sdk
sumber
Ini juga bisa disebabkan oleh kotak centang build yang tidak dicentang untuk proyek platform saat ini dalam konfigurasi build. Klik Bangun | Manajer konfigurasi, lalu pastikan proyek pengujian memiliki tanda centang di kolom build untuk platform yang Anda gunakan (misalnya 'x86').
Ini jelas merupakan solusi yang bekerja untuk saya.
sumber
Pastikan Anda belum menulis pengujian unit Anda di .NET Standard 2.0 Class Library. Visualstudio runner tidak mendukung tes yang berjalan di pustaka kelas netstandard2 pada saat penulisan ini.
Periksa di sini untuk matriks Kompatibilitas Test Runner:
https://xunit.github.io/#runners
sumber
Mengalami masalah yang sama dengan VS tidak menemukan metode pengujian. Dalam kasus saya, saya memiliki kata kunci statis dengan metode, yang saya hapus dan berhasil.
sumber
beri tahu saya, terima kasih
sumber
Dalam kasus saya, saya memiliki 2 proyek pengujian berbeda dalam solusinya. Tes Proyek 1 dapat ditemukan, tetapi tes Proyek 2 tidak dapat. Saya menemukan bahwa pertama Membongkar Proyek uji 1, lalu menutup VS> membersihkan file temp saya> membuka kembali solusi> membangun kembali, memungkinkan VS untuk menemukan tes Proyek 2 saya.
Saya mengasumsikan ada sesuatu yang bertentangan antara kedua proyek pengujian dan ini adalah cara tercepat untuk membangunkan saya dan berjalan dalam beberapa menit. Ketegaran bisa diselesaikan nanti :).
sumber
Saya menderita masalah ini sejak lama.
Saya memiliki sekitar 100 proyek versi yang berbeda digunakan 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 manajer paket untuk memperbarui paket xunit.runner.visualstudio saya
sumber
Penyebab paling umum bagi saya adalah Visual Studio mencoba menjalankan tes menggunakan arsitektur yang berbeda dari perpustakaan yang diuji. Sayangnya ada beberapa tempat di mana tampaknya ini bisa salah.
Di VS 2017, coba buat file Run Settings, misalnya
Default.runsettings
di proyek pengujian Anda. Jika lib utama Anda adalah x64, isinya harus:Kemudian pilih file ini dari Tes -> Pengaturan Tes -> Pilih File Pengaturan Tes.
Kemudian, di bawah Tes -> Pengaturan Tes, Arsitektur Prosesor Default, pilih arsitektur yang benar lagi.
Pastikan untuk Bersihkan dan Bangun seluruh solusi. Anda mungkin perlu menutup dan membuka kembali jendela Test Explorer. Cari kesalahan tambahan di jendela Output -> Test, untuk petunjuk lebih lanjut tentang tipe arsitektur yang salah.
Entri tambahan Pengaturan Tes FYI dapat ditemukan di sini .
sumber
Ada satu alasan lain yang dapat menyebabkan Test Explorer tidak menunjukkan tes apa pun, dan itu ada hubungannya dengan
.pdb
format file portabel baru yang diperkenalkan dengan Visual Studio 2017 / for .NET Core yang dapat memecahkan beberapa tooling VS. (Latar belakang: Lihat laporan bug "Mono.Cecil menyebabkan OutOfMemoryException dengan PDB .csproj baru" .)Apakah tes Anda tidak ditemukan karena format portable
.pdb
(simbol debug) yang baru?Jika Anda melihat output seperti berikut ini (mungkin diulangi sekali untuk setiap tes Anda), maka Anda memiliki masalah yang dijelaskan dalam jawaban ini:
Jika ya, lakukan ini untuk menyelesaikan masalah:
none
,pdb-only
ataufull
, tapi tidakportable
. Pengaturan terakhir inilah yang menyebabkan tes tidak ditemukan..pdb
file sebelum membangun kembali. Sekarang tes Anda harus kembali.sumber
Terjadi pada saya ketika saya melakukan upaya pertama saya berjalan dengan IntelliTest di VS 2017.
Terkadang, ketika proyek pengujian dibuat secara otomatis oleh IntelliTest, rakitan referensi ke
Microsoft.ExtendedReflection
( ... \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ Pex \ Microsoft.ExtendedReflection. dll ) tidak ada. Ketika ditambahkan, Tes yang dihasilkan akan muncul di test explorer setelah dikompilasi ulang.sumber
Penafian: ini bukan tentang xunit dengan visual studio 2015, tetapi Visual Studio 2017 dengan aplikasi tes 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 ketika Anda membuat aplikasi unit test untuk UWP Anda tidak secara otomatis mendapatkan versi terbaru.
sumber
Masalah saya teratasi dengan menginstal nunet xunit.runner.visualstudio
sumber
Dalam kasus saya, saya memiliki beberapa proyek uji dalam solusi yang sama, dan hanya satu proyek yang tidak menampilkan "Test Explorer"
Saya pergi ke "Manage Nuget Package for Solution" dengan mengklik kanan solusinya.
Saya perhatikan di bawah tab "Konsolidasi" ada beberapa paket nuget "Tes" yang tidak sinkron antara proyek. Saya mengklik "Instal" dan tes saya yang hilang muncul.
sumber
Saya mencoba sebagian besar saran di atas dan tidak ada yang berhasil. Dalam kasus saya, saya di 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 kloning repo. Itu menyelesaikannya untuk saya.
sumber
Inilah solusi yang berhasil bagi kami. Bukan yang terbaik tapi mungkin orang bisa mendapat manfaat.
Latar Belakang:
Setelah Membangun kita akan melihat pesan ini:
Solusi (sementara):
Sekarang Tes ditampilkan.
sumber
xUnit v2 tests
judulnyaJuga periksa apakah file app.config benar-benar kosong (benar-benar kosong tanpa markup) dalam proyek uji. Ini adalah pelakunya dalam kasus saya.
sumber
Dalam kasus saya, saya membuat "Konfigurasi Solusi" baru seperti yang ditunjukkan pada gambar. Jadi ketika saya memilih salah satu kustom saya sebagai "Prod", itu tidak mengenali TestMehods karena beberapa alasan. Mengubah kembali ke "Debug" memecahkan masalah
sumber
Saya tidak tahu apakah beberapa dari Anda juga menggunakan JustMock, tetapi saya harus menonaktifkan profiler di VS 2017 agar deteksi tes berfungsi.
sumber