Saat ini saya sedang mengerjakan solusi yang saat ini memiliki 32 Unittests. Saya telah bekerja dengan pelari uji resharper - yang berfungsi dengan baik. Semua tes sedang berjalan, semua tes menunjukkan hasil tes yang tepat. Sekarang seorang rekan kerja memberi tahu saya, bahwa tes tidak berjalan pada mesinnya menggunakan Visual Studio test explorer. Mereka tidak bekerja di mesin saya, jadi saya dapat mengecualikan beberapa file lokal yang hilang atau sesuatu.
Explorer Uji menampilkan semua tes unit, tetapi sekali mengklik "Jalankan Semua", semua tes menjadi abu-abu dan tidak menunjukkan hasil dari uji coba:
- Semua kelas tes bersifat publik
- Semua kelas uji
[TestClass]
dideklarasikan atributnya - Semua metode pengujian menggunakan
[TestMethod]
atribut - Kode produktivitas dan proyek pengujian menargetkan .NET 3.5.
- Saya sudah mencoba untuk bersih membangun solusi saya, dan / atau menghapus semua
obj
,bin
,Debug
danRelease
folder
Saya akan menghargai setiap petunjuk yang dapat menyebabkan perilaku seperti itu.
visual-studio
unit-testing
visual-studio-2012
resharper
ElGauchooo
sumber
sumber
Jawaban:
Jika proyek Anda tidak semuanya AnyCpu maka Anda mungkin juga ingin memeriksa bahwa 2 pengaturan berikut cocok:
[Proyek uji klik kanan] -> properties -> Build -> Target platform - mis. X64
[Menu Utama] -> Tes -> Pengaturan Tes -> Arsitektur Prosesor Default -> X64
Saya menemukan bahwa ketika ini tidak cocok dengan proyek pengujian saya akan diam-diam gagal dijalankan.
sumber
Saya memiliki masalah yang sama di VS 2017. Dalam kasus saya itu diselesaikan dengan memulai kembali VS.
sumber
Jika Anda menggunakan NUnit daripada MSTest maka Anda akan memerlukan NUnit Test Adapter Extension untuk Visual Studio 2012/2013.
sumber
Microsoft.NET.Test.Sdk
dari NugetSaya harus mengubah metode pengujian async saya untuk mengembalikan Task dan bukannya batal.
Tes kemudian aktif dan dapat dijalankan di Test Explorer.
sumber
async void Foo()
dan analis mereka tidak mengeluh, tetapi mereka pasti bisa menambahkan satu yang akan melakukannya. cc: @bradwilsonPeriksa kerangka tes apa yang ditulis (mis. Nunit, xunit, VS test, dll.) Dan pastikan Anda telah menginstal ekstensi adaptor adaptor / pelari yang benar.
Bagi saya NUnit 3 Test Adapter yang hilang dan saya mengkonfirmasi nomor versi yang diperlukan dengan melihat versi dependensi nunit.framework (pilih .dll di pohon Dependency di Solution Explorer dan tekan F4 untuk membuka jendela Properties).
sumber
Microsoft.VisualStudio.QualityTools.UnitTestFramework
(tidak yakin versi mana). Diselesaikan masalah di mana metode tidak berjalan (atau ditemukan) dengan menghapus referensi itu, dan menginstal MSTest (v2.1.0) terbaru (Test Framework) (dan Framework)Microsoft.VisualStudio.TestTools.UnitTesting
usang? Saya memiliki beberapa tes menggunakan ini yang tiba-tiba berhenti berjalan seperti di atas setelah menambahkan kembali beberapa referensi ke proyek yang mereka andalkan.Saya berjuang dengan ini selama satu setengah hari. jadi inilah yang saya lakukan untuk menyelesaikannya:
Gejala
Penyelidikan
Karena semua paket diperbarui selama pembaruan .net framework, saya mulai dengan perbedaan antara proyek kerja dan tidak bekerja. Petunjuk pertama adalah bahwa ketiga proyek menggunakan: MSTest.TestAdapter dan MSTest.TestFramework
Tentu saja saya pergi ke -> Output console -> Test dropdown pada VS 2019 dan melihat hasilnya. Tidak ada yang berguna di sana.
Langkah salah satu solusinya : Perbarui MSTest.TestAdapter dan MSTest.TestFramework ke versi 2.0.0
Langkah dua dari solusi : Sekarang konsol Output -> Uji dropdown output mulai menunjukkan satu demi satu, paket yang hilang dan pengalihan yang salah mengikat
Langkah tiga dari solusi : Secara manual tambahkan paket yang hilang. Bagi saya itu
Langkah 4 dari solusi : Dihapus / Memperbaiki pengalihan mengikat yang tidak perlu.
Saya harap ini akan membantu orang lain.
sumber
ToolsVersion
dan menabrak milik saya mengacaukan semuanya. Yang bisa saya katakan adalah "pembeli waspada" untuk pengujian unit MS dan siap untuk mengganti file * .csproj Anda pada saat itu juga, barang ini terintegrasi dengan erat dan sangat bergantung pada versi.Clean-Rebuild
solusi bekerja untuk saya.sumber
Saya punya masalah ini dan bagi saya itu disebabkan oleh memiliki beberapa Proyek Uji dengan versi berbeda dari:
Mengkonsolidasikan paket nuget untuk proyek sehingga mereka sama menyelesaikan masalah untuk saya.
sumber
Punya masalah yang sama setelah instalasi bersih VS 2019. Tes ditemukan tetapi tidak dijalankan dengan "Terjadi kesalahan tak terduga". Diperbaiki dengan mengatur x64 alih-alih x86 yang dipilih secara default.
sumber
Saya menemukan bahwa dalam proyek itu tidak merujuk pada perakitan Microsoft.VisualStudio.QualityTools.UnitTestFramework . Sebaliknya, itu referensi Microsoft.VisualStudio.TestPlatform.TestFramework dan Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions . Ketika saya menghapus dua referensi dan menambahkan referensi ke Microsoft.VisualStudio.QualityTools.UnitTestFramework perakitan tes yang sebelumnya ditandai dengan titik seru biru tiba-tiba menjadi aktif dan mulai bekerja.
sumber
Dalam kasus saya, itu karena satu proyek pengujian dalam solusi saya memiliki MSTest.TestFramework dan MSTest.TestAdapter paket nuget diinstal tetapi yang lain tidak. Paket-paket ini tampaknya tidak diperlukan untuk menjalankan tes sampai satu proyek dalam solusi menginstalnya.
Masalah ini diperbaiki dengan menginstal paket-paket itu pada proyek uji yang hilang.
sumber
Apa yang diperbaiki untuk saya adalah memutakhirkan paket nuget MS.Test
sumber
Instal
Nunit3TestAdapter
Nuget telah memecahkan masalah inisumber
Mengatur Arsitektur Prosesor untuk Proyek AnyCPU di Test Explorer memperbaiki masalah saya! Lihat tangkapan layar di atas.
sumber
Dalam kasus saya, saya memiliki
async void
Metode dan digantiasync Task
, jadi tes berjalan seperti yang saya harapkan:ubah dengan :
sumber
Saya memiliki gejala yang sama.
Harap pastikan Anda memasang ekstensi Visual Studio yang tepat melalui Alat - Ekstensi dan Pembaruan. Dalam kasus saya, saya harus menginstal XUnit dan Specflow dari opsi Online.
Kemudian bersihkan solusinya dan bangun kembali.
Jika itu masih tidak membantu, kosongkan direktori temp Anda (cari% temp% di pencarian menu Start dan hapus semua konten di Temp)
Dan akhirnya mencoba menguninstall Resharper yang akhirnya memperbaiki masalah saya.
sumber
Anda dapat melihat output kesalahan dari pelari tes Anda dengan membuka panel Output (view -> output) dan memilih "tes" dari dropdown "Tampilkan output dari"
Selain itu, jika Anda memasang Resharper, Anda dapat membuka file tes dan mengarahkan kursor ke lingkaran tes di sebelah tes untuk mendapatkan info kesalahan tambahan
Mengklik itu akan membawa Anda ke jendela dengan informasi yang lebih rinci. Atau, Anda dapat membuka jendela itu dengan membuka Extensions -> Reshaper -> Windows -> Hasil Eksplorasi Uji Unit
sumber
Ini dia proyek uji yang tidak ditandai untuk dibangun:
Build -> Configuration Manager ... -> periksa build untuk proyek pengujian Anda
sumber
Karena saya tiba di sini dengan kesalahan semacam ini, saya memposting masalah / solusi saya:
Gejala:
Masalah:
Ada kesalahan dalam kode yang melemparkan pengecualian di dalam utas lainnya. Semua pernyataan pengujian lulus tetapi membatalkan pelaksanaan pengujian. Saya bisa melihat kesalahan dalam "Tes output" (NullException).
sumber
Memiliki gejala yang sama, dalam kasus saya itu adalah versi SDK dotnet inti yang menjadi masalah.
Proyek-proyek ini menargetkan 2.2, dan mampu membangun menggunakan 3.0. Setelah menginstal versi 2.2 SDK terbaru mereka dapat menjalankan.
sumber
Telah mencoba banyak opsi dengan Visual Studio 2019 Versi 16.4.6 dan
Microsoft.VisualStudio.TestTools.UnitTesting
, tetapi untuk saat ini satu-satunya cara untuk menjalankan tes dengan sukses adalah dengan menjalankan perintah berikutnya di konsolTes ditemukan di Test Explorer tetapi hasilnya "Tidak Berjalan".
Memperbarui Visual Studio tidak membantu.
Selesaikan masalah dengan "Tidak ada tes yang cocok dengan filter testcase yang diberikan FullyQualifiedName" dengan menjalankan pembaruan ke versi terbaru untuk paket berikutnya:
sumber
Bagi saya solusinya adalah mengubah pengaturan Pengujian Unit Resharper "Arsitektur platform default" menjadi "x64"
sumber
Bagi saya memulai kembali VS2017 tidak berhasil. Saya harus membersihkan sln kemudian menemukan file dengan tes yang tidak berjalan dan menjalankan file itu saja. Setelah itu saya menjalankan semua dan itu bekerja normal kembali.
sumber
Saya memiliki versi yang berbeda dari paket nuget NUnit (3.11.0) dan NunitTestAdapter (3.12.0). Ketika saya memperbarui NUnit ke 3.12.0, Visual Studio menjalankan tes.
sumber
Dalam kasus saya ini berfungsi untuk memperbarui paket nuget MSTest. Dapat mereproduksi masalah ini bahkan pada proyek MSTest kosong dan memperbarui paket berhasil.
sumber
Bagi saya memiliki properti yang disebut TestContext di kelas dasar menyebabkan perilaku ini. Sebagai contoh:
sumber
Saya bisa tahu dari atribut Anda bahwa Anda menggunakan MSTest. Saya memiliki masalah yang sama: tes saya muncul di Test Explorer, tetapi ketika saya akan mencoba menjalankannya (baik dengan memilih Run All atau secara individual memilihnya) mereka tidak akan melakukannya.
Masalah saya adalah bahwa saya telah membuat proyek unit test secara manual dari proyek .NET Standard Class Library. Saya telah menginstal
MSTest.TestFramework
paket NuGet, tetapi bukanMSTest.TestAdapter
paketnya. Segera setelah saya menginstal paket adaptor, mereka berjalan seperti yang diharapkan.Tampak jelas dalam retrospeksi, tetapi ketika Anda membuat proyek unit test dari templat, Anda menganggap semua ini sebagai hal yang wajar.
sumber
Perlu disebutkan bahwa kadang-kadang file NUnit Test Adapter rusak di folder pengguna C: \ Users [Pengguna] \ AppData \ Local \ Temp \ VisualStudioTestExplorerExtensions \ NUnit3TestAdapter.3.8.0 / build / net35 / NUnit3.TestAdapter.dll pada Windows 10 dan yang menyebabkan Test Explorer berhenti berfungsi sebagaimana mestinya.
sumber
Saya menggunakan VS2019 dengan .Net 4.7. Saya menginstal ekstensi NUnit v3, dan mengubah pengaturan Tes untuk menggunakan X64. Proyek unit test saya adalah Any CPU (akan berfungsi jika saya mengubahnya ke x64). Sekarang saya bisa men-debug kode saya.
sumber
Masalah ini juga diamati ketika metode pengujian yang dijalankan melempar StackOverflowException , membuat pelari uji batalkan pengujian yang dijalankan, menghasilkan output
0 tests run
.Untuk menemukan pelakunya dan menyelesaikannya, berikan titik istirahat di awal metode yang dihiasi TestInitialize dan TestMethod , jalankan uji unit dalam mode debug, lanjutkan melangkahi (F10) hingga pengecualian dilemparkan.
sumber