EDIT 2016-10-19:
Pertanyaan asli adalah tentang masalah khusus untuk VS2015 CTP6 dengan pelari uji XUnit. Jelas dari jawaban bahwa ada masalah yang lebih luas dengan penemuan tes unit di Visual Studio yang dapat terjadi dalam berbagai situasi. Saya telah membersihkan pertanyaan saya untuk mencerminkan hal itu.
Saya juga memasukkan skrip ke dalam jawaban saya sendiri yang masih saya gunakan sampai hari ini untuk menyelesaikan masalah yang sama saat muncul.
Banyak jawaban lain juga terbukti membantu dalam memahami seluk-beluk pelari tes VS dengan lebih baik. Saya menghargai bahwa orang-orang masih membagikan solusi mereka!
Pertanyaan asli 2015-04-10:
Sejak kemarin, Visual Studio Test Explorer saya tidak akan menemukan tes untuk proyek saya. Itu juga tidak menunjukkan bilah pemuatan hijau setelah bangunan.
Ketika saya pergi ke Visual Studio Test Explorer dan klik "Run All", atau ketika saya klik kanan setiap metode tes dan pilih "Run Tests", saya mendapatkan yang berikut di jendela output saya:
Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Saya menjalankan Visual Studio 2015 CTP 6 pada Windows 10 Pro Technical Preview, membangun 10041. Versi .NET Framework tampaknya tidak masalah - itu terjadi 4.0
, 4.5.2
dan 4.6
.
Saya mencoba dengan kerangka kerja pengujian berikut dan semuanya memberikan perilaku yang sama:
Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
xunit v2.1.0-beta1-build2945
denganxunit.runner.visualstudio v2.1.0-beta1-build1051
NUnit v2.6.4
denganNUnitTestAdapter v2.0.0
Saya menemukan masalah pada GitHub (xunit) yang tampaknya serupa: Tidak dapat memperoleh tes yang ditemukan # 295 , dengan komentar ini dari tim xunit:
Ketahuilah bahwa Visual Studio 2015 CTP 5 telah dilaporkan rusak oleh banyak orang dengan pengujian unit secara umum (bukan hanya xUnit.net), jadi jangan berharap itu berfungsi.
Juga, pastikan Anda sudah membersihkan cache runner Visual Studio. Jika rusak, Visual Studio akan melakukan kesalahan secara permanen sampai dihapus. Untuk menghapus cache, matikan semua instance Visual Studio, lalu hapus folder% TEMP% \ VisualStudioTestExplorerExtensions (jujur, mungkin tidak ada salahnya untuk menghapus semuanya dalam% TEMP% yang dapat dihapus).
Saya mencoba saran mereka untuk menghapus folder %TEMP%\VisualStudioTestExplorerExtensions
. Sayangnya itu tidak memperbaiki masalah.
Saya memperhatikan bahwa ReSharper sebenarnya adalah mampu menemukan beberapa tes. Ini hanya berfungsi untuk tes VS dan NUnit, bukan untuk xunit.
Harus ada semacam temp atau folder cache yang perlu saya hapus, tetapi saya tahu Visual Studio memiliki banyak dari mereka dan tidak semuanya dapat dihapus tanpa efek samping yang tidak diinginkan.
sumber
Jawaban:
Yang mengejutkan saya, membersihkan file temp yang terletak di
%TEMP%
direktori menyelesaikan masalah bagi saya.Catatan: Jalur ini umumnya di
C:\Users\(yourusername)\AppData\Local\Temp
Seperti yang termasuk @ Warren-P, Anda dapat menavigasi ke folder temp dengan memasukkan
%temp%
Start Menu, atau meluncurkan "File Explorer" dan masukkan%temp%
di bilah alamat.sumber
%TEMP%
menu Start Run dan ia menemukan folder temp Anda untuk Anda tanpa menebak berapa nilai temp.%TEMP%
direktori layak untuk berhenti bekerja.Bisa jadi kode Anda dikompilasi dengan x64 karena itu harus mengaktifkan Arsitektur Prosesor Default sebagai X64.
sumber
Lihat, jika NUnit Test Adapter 2/3 diinstal di VisualStudio.
(Tools>Extensions and Updates )
Pastikan arsitektur prosesor yang benar dipilih:
(Test>Test Settings>Default Processor Architecture)
sumber
EDIT 2016-10-19 (skrip PowerShell)
Masalah ini masih kembali setiap saat. Saya menulis cuplikan PowerShell kecil untuk mengotomatiskan menghapus cache / temp folder / file yang relevan untuk saya. Saya membagikannya di sini untuk pembaca masa depan:
Pastikan untuk menutup Visual Studio sebelumnya dan mungkin ide yang baik untuk reboot setelahnya.
Menghapus folder TEMP mungkin tidak diperlukan dan dalam beberapa kasus bahkan mungkin tidak diinginkan, jadi saya akan merekomendasikan mencoba tanpa membersihkan folder TEMP terlebih dahulu. Abaikan saja
"$env:TEMP"
.Jawaban asli 2015-04-12
Masalahnya "terpecahkan" setelah pembersihan menyeluruh folder temp / cache yang berhubungan dengan Visual Studio.
Karena saya tidak punya waktu untuk memeriksa semuanya satu per satu dan kemudian menguji di antaranya, saya sayangnya tidak tahu mana yang sebenarnya menyebabkan masalah.
Ini adalah langkah-langkah tepat yang telah saya ambil:
temp
file / folderSecara manual menghapus / menghapus file / folder berikut:
%USERPROFILE%\AppData\Local\assembly
%USERPROFILE%\AppData\Local\Microsoft\UnitTest
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\1033\SpecificFolderCache.xml
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\1033\ProjectTemplateMRU.xml
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\Designer\ShadowCache
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ImageLibrary\cache
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio Services\6.0\Cache
%USERPROFILE%\AppData\Local\Microsoft\WebsiteCache
%USERPROFILE%\AppData\Local\NuGet\Cache
%USERPROFILE%\AppData\Local\Temp
sumber
\Microsoft\VisualStudio\14.0\ImageLibrary\ImageLibrary.cache
?Salah satu alasan untuk masalah ini adalah kelas tes Anda tidak terbuka untuk umum. MSTest hanya menemukan tes dari kelas publik.
sumber
Dalam Visual Studio 2015 (Pembaruan 3) jika Anda ingin melampirkan tes di explorer tes maka harus menginstal NUnit Test Adapter. Unduh adaptor dari Tools-> Extension And Updates-> tab Online (Anda harus mencari adaptor ) -> Unduh . Dengan memulai ulang Visual Studio Anda dapat melihat perubahan untuk kerangka uji.
sumber
Saya tidak punya jawaban lengkap untuk ini, tetapi saya telah menentukan beberapa hal dengan bermain dengan proyek uji:
xunit.runner.aspnet : 2.0.0-aspnet-beta4
tampaknya menjadi bagian dari rilis beta4 aspnet5 resmi tidak berfungsi di Visual Studio."xunit": "2.1.0-*"
dan"xunit-runner.dnx": "2.1.0-*"
paket DO berfungsi di Visual Studio.Ini berlaku per VS 2015 CTP 6, menggunakan rilis beta4, bukan harian.
sumber
Saya memiliki contoh di mana beberapa tes tidak akan diambil karena saya telah membuatnya
async
seperti berikut:public async void This_IsMy_UnitTest()
Masalahnya adalah saya lupa membuat mereka kembali
Task
dan tidakvoid
ketika saya melakukan peralihan. Orang akan berpikir ini akan menyebabkan kesalahan atau tes gagal tetapi tidak. Tes unit di kelas itu sepenuhnya diabaikan dan bertindak seolah-olah tidak ada.Itu tidak setelah sekitar 3 bersih dan membangun + restart
VS.NET
bahwa saya melihat tes berjalan dan gagal menunjukkan saya lupa menambahkanTask
tipe kembali:public async Task This_IsMy_UnitTest()
Setelah pembaruan, unit test ditemukan dan berfungsi dengan benar. Ini mungkin kasus tepi, tetapi memiliki
async
tes untuk digunakan diawait
dalam tetapi tidak memiliki tanda tangan yang benar dapat menyebabkan masalah yang sama dan ini bukan kali pertama saya melakukan ini.sumber
Pergi ke pengelola paket Nuget dan unduh Nunit Adapter sebagai berikut.
sumber
Saya memiliki masalah yang sama tetapi folder "% TEMP% \ VisualStudioTestExplorerExtensions" tidak ada pada mesin saya sehingga ketika saya membaca posting saya punya ide untuk membuatnya dan berfungsi. Penjelajah uji sekarang dapat menunjukkan semua tes saya. Terima kasih.
sumber
Cukup restart Visual Studio dan di Test Explorer lakukan "Run All" ... Semua pengujian saya ditemukan.
sumber
Dalam kasus saya (Visual Studio Enterprise 2015 14.0.25425.01 Pembaruan 3, Resharper 2016.2) Saya hanya perlu melakukan solusi bersih dari menu Build. Membangun kembali solusi kemudian menyebabkan explorer tes untuk "bangun" dan menemukan semua tes lagi.
sumber
Solusi dalam kasus saya adalah hanya menginstal ekstensi NUnit 3 Test Adapter ke Visual Studio 2015 saya.
sumber
Dalam kasus saya, masalahnya adalah "antara kursi dan keyboard". Saya telah beralih ke konfigurasi di Configuration Manager yang tidak menyertakan proyek pengujian unit saya yang sedang dibangun. Beralih kembali ke konfigurasi (mis. Debug) yang mencakup semua proyek menyelesaikan masalah.
sumber
Dalam kasus saya, MSTest di bawah VS 2015 mengabaikan tes dengan nama tes (yaitu metode) yang lebih panjang dari 174 karakter. Memperpendek nama memungkinkan tes terlihat. Ini ditentukan melalui tebak-dan-periksa dengan memanipulasi nama tes.
sumber
Ini mungkin tidak akan membantu kebanyakan orang, tetapi seseorang yang tidak berpengalaman di unit testing telah menulis metode pengujian yang mengembalikan
bool
alih-alihvoid
:Mengubah tipe pengembalian untuk
void
memperbaiki masalah.sumber
Pastikan Anda memilikinya
xunit.runner.visualstudio
paket dalam paket proyek pengujian Anda. Config dan juga yang dipulihkan dengan benar.Saya tahu ini bukan kasus dari pertanyaan awal tetapi bisa menghemat waktu untuk orang seperti saya.
sumber
Saya hanya ingin menambahkan bahwa saya menemukan solusi yang sama sekali berbeda dengan yang di atas.
Saya telah menyatakan kelas tes saya sebagai berikut:
Segera setelah saya menambahkan
public
pengubah ke kelas, itu berfungsi seperti yang diharapkan!sumber
Jika Anda menargetkan .NET Standard atau .NET Core, Anda perlu menggunakan paket NuGet untuk NUnit Test Adapter dan bukan ekstensi .
Sumber: NUnit GitHub Wiki
.
Periksa juga FAQ di sana:
Sumber: NUnit GitHub Wiki
sumber
Ini terjadi pada saya karena proyek pengujian saya berisi
app.config
. Itu secara otomatis ditambahkan oleh paket NuGet untuk redirection perakitan, tetapi tes saya tampaknya berjalan baik tanpa itu.Lihat: https://developercommunity.visualstudio.com/comments/42858/view.html .
sumber
Saya memiliki masalah yang sama. Saya hanya membersihkan dan membangun kembali proyek dan saya dapat melihat tes yang hilang.
sumber
Muncul untuk membagikan solusi saya. Saya menggunakan Windows 10, Visual Studio 2015, NUnit 3.5, NUnit Test Adapter 3.6 (melalui NuGet, bukan ekstensi VISX) dan tidak ada tes saya yang ditemukan. Masalah saya adalah bahwa dalam proyek Tes solusi saya, entah bagaimana jalan pintas ke folder "Dokumen" saya telah dibuat dalam folder proyek. Saya menduga adaptor tes melihat jalan pintas dan menutup telepon mencoba mencari tahu apa yang harus dilakukan dengan itu, mengakibatkan kegagalan untuk menampilkan tes unit.
sumber
Menghapus file \ AppData \ Local \ Microsoft \ VisualStudio \ 14.0 \ 1033 \ SpecificFold erCache.xml memecahkan masalah untuk saya.
sumber
Topik ini agak ketinggalan jaman, tetapi solusi saya untuk status Tes yang hilang di VS2015:
Status tugas hanya muncul pada konfigurasi build Debug. Ofcourse ini juga membuat tidak mungkin untuk men-debug pengujian Anda melalui test-explorer.
sumber
Saya juga digigit oleh fitur kecil yang indah ini dan tidak ada yang dijelaskan di sini yang bekerja untuk saya. Tidak sampai saya memeriksa ulang output build dan memperhatikan bahwa proyek yang bersangkutan tidak sedang dibangun. Kunjungan ke manajer konfigurasi mengkonfirmasi kecurigaan saya.
Visual Studio 2015 dengan senang hati mengizinkan saya untuk menambahkan proyek baru tetapi memutuskan bahwa itu tidak layak untuk membangunnya. Setelah saya menambahkan proyek ke build itu mulai bermain dengan baik.
sumber
Saya mengatasinya dengan mengubah X64 ke: Klik kanan pada proyek -> Properties -> Build -> Target platform -> Any CPU
sumber
Entah bagaimana proyek saya diatur untuk dikompilasi sebagai Perpustakaan Statis (.lib) . Setelah mengubah ini menjadi Dynamic Library (.dll) , tes di mana ditemukan dengan benar oleh Visual Studio 2012.
sumber
Sangat mudah bagi saya untuk memperbaiki masalah ini sebagai:
sumber
Kami memiliki masalah yang sama. Kami memiliki solusi VS 2015 besar dengan banyak proyek C # di dalamnya dan bahkan lebih banyak proyek uji.
Penemuan tes Resharper bekerja dengan baik, tetapi VS Test Explorer gagal total.
Ternyata proyek-proyek itu tidak memiliki versi MsTest TestFramework dan TestAdapter yang sama, dan kadang-kadang mereka menggunakan NuGets dan referensi lama yang bagus, dan itu tampaknya tidak didukung (terlalu banyak untuk IDE yang mahal).
Menghapus semua referensi Microsoft.VisualStudio.Test * dan kemudian menambahkan / memperbarui dua MSTest NuGets memperbaiki masalah.
sumber
Saya memecahkan masalah ini dengan menyadari bahwa Kerangka Target untuk proyek pengujian saya berbeda dari proyek yang sedang diuji. Ya, saya menyebabkan masalah ini dengan mengubah kerangka target dari default (Proyek> Properti> Aplikasi), tetapi gagal untuk ini untuk proyek uji, yang dibuat beberapa minggu kemudian. Ketidakcocokan tidak menyebabkan kesalahan kompiler, tapi itu menghasilkan peringatan di jendela Daftar Kesalahan . Setelah saya memilih opsi untuk menampilkan peringatan, solusinya jelas.
sumber