Saya memiliki kelas tes dan di bawah ini saya telah memposting tes sampel dari kelas tes
namespace AdminPortal.Tests.Controller_Test.Customer
{
[TestClass]
public class BusinessUnitControllerTests
{
private IBusinessUnitRepository _mockBusinessUnitRepository;
private BusinessUnitController _controller;
[TestInitialize]
public void TestInitialize()
{
_mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>();
_controller = new BusinessUnitController(_mockBusinessUnitRepository);
}
[TestCleanup]
public void TestCleanup()
{
_mockBusinessUnitRepository = null;
_controller.Dispose();
_controller = null;
}
#region Index Action Tests
[TestMethod]
public void Index_Action_Calls_GetAllBusinessUnit()
{
_mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit());
_controller.Index();
_mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit());
}
}
}
Ketika saya menjalankan proyek saya mendapatkan layar berikut
Saya memeriksa referensi dan proyek uji memiliki referensi ke proyek utama. Adakah gagasan mengapa tes ini tidak berjalan atau mengatakan bahwa itu tidak meyakinkan?
Edit 1:
Saya melihat posting di sini dan mengubah arsitektur prosesor default pengaturan pengujian saya ke X64 tetapi masih tidak berfungsi.
c#
asp.net-mvc
asp.net-mvc-4
unit-testing
resharper
Cybercop
sumber
sumber
Jawaban:
Untuk berjaga-jaga jika tidak ada opsi di atas bekerja untuk siapa pun saya memperbaiki contoh saya dari kesalahan ini dengan memperhatikan entri yang rusak di App.Config karena paket nuget yang hilang dalam proyek pengujian.
sumber
<configSections>
.Bagi saya itu agak membuat frustrasi, tapi saya sudah menemukan solusi untuk kasus saya setidaknya:
Jika TestMethod Anda async, itu tidak bisa dibatalkan. Ini HARUS mengembalikan Tugas.
Semoga ini bisa membantu seseorang :)
sumber
Saya memiliki masalah yang sama dengan resharper dan saya memperbaiki kesalahan ini dengan mengubah opsi:
Resharper => Opsi => Alat => Pengujian Unit
Saya hanya perlu menghapus centang opsi "Shadow-copy rakitan sedang diuji"
sumber
Itu adalah masalah Resharper. Dalam opsi Resharper-> Alat-> MSTEST, saya menghapus centang pada Run Legacy Pakai dan sekarang berfungsi.
sumber
Saya mengalami masalah ini, dan ternyata sama dengan masalah di sini . Jawaban ini memecahkan masalah bagi saya .
Kedua kalinya saya mengenai masalah ini, itu karena ampersand di filepath ke proyek di mana tes berada. Ini berfungsi baik dengan test runner ReSharper, tetapi tidak untuk dotCover. Lepaskan ampersand dari filepath.
Ini adalah bug yang dikonfirmasi dengan dotCover.
sumber
Bagi saya, hanya membersihkan dan membangun kembali solusi memperbaikinya.
sumber
Bagi saya, masalahnya adalah pengaturan file XML NUnit / ReSharper rusak (karena kekurangan daya yang tidak terduga).
Untuk mengidentifikasi kesalahan, saya memulai Visual Studio dengan perintah ini :
Memeriksa file mengungkapkan pengecualian berikut:
Perhatikan bahwa ini BUKAN app.config proyek uji!
Sebuah cepat Googling sekitar diidentifikasi berikut file sebagai pelakunya:
Itu ada, tetapi kosong. Menghapusnya dan memulai kembali Visual Studio menyelesaikan masalah.
(Menggunakan Visual Studio Professional 2017 v15.3.5 dan ReSharper 2017.2.1).
sumber
Saya menghadapi masalah ini di pembaruan vs 3 2017 dengan Resharper Ultimate 2017.2
Mulai ulang vs atau mulai ulang mesin tidak dapat membantu.
Saya menyelesaikan masalah dengan menghapus Cache sebagai berikut:
Memperbarui:
Ada tombol "kesalahan" (saya temukan di Resharper 2018) di sudut kanan atas jendela tes.
Jika Anda mengklik tombol kesalahan, itu menunjukkan pesan kesalahan yang dapat membantu dalam menyelesaikan masalah.
Untuk melacak akar masalah, jalankan Visual Studio dalam mode log. Di vs 2017, Jalankan perintah:
Jalankan tes.
Tinjau file log test_log.txt dan cari 'kesalahan' dalam file tersebut.
File log sangat membantu untuk menemukan kesalahan yang dapat Anda atasi atau Anda dapat mengirim masalah dengan file log ke tim dukungan teknis Resharper .
sumber
Saya baru saja memperbaiki masalah ini juga. Namun, tidak ada solusi di utas ini yang berfungsi. Inilah yang saya lakukan ...
Karena R # tidak memberikan perincian tentang mengapa semuanya gagal, saya memutuskan untuk mencoba pelari uji VS2013 bawaan. Itu mengalami perilaku yang sama persis di mana tidak ada tes yang dijalankan. Namun, melihat di jendela Output, saya akhirnya memiliki pesan kesalahan:
Ini membawa saya ke utas lainnya di SO dengan solusi. Percayalah, saya tidak akan pernah bisa menebak apa masalahnya.
Saya baru-baru ini membuat beberapa perubahan pada file AssemblyInfo.cs saat membuat paket NuGet. Salah satu perubahan termasuk menentukan nilai budaya perakitan "en".
Saya mengubah ini:
untuk ini:
Itu dia! Itulah yang secara tidak masuk akal memecahkan tes unit saya. Namun saya masih tidak mengerti mengapa. Tapi setidaknya semuanya bekerja lagi. Setelah saya mengembalikan perubahan ini (yaitu, set budaya kembali ke ""), tes saya mulai berjalan lagi.
Semoga itu bisa membantu seseorang di luar sana.
sumber
Dalam kasus saya,
[Test]
metode itu adilprivate
. Malusumber
Masalah saya adalah saya hanya menginstal NUnit dengan nuget. Saya belum menginstal NUnit3TestAdapter yang juga diperlukan.
sumber
Dalam kasus saya itu adalah kesalahan yang saya lakukan saat menyalin connectionstring di app.config .. Saya telah memasukkannya ke dalam tag configSections!
Butuh waktu beberapa saat untuk menyadari bahwa ... terima kasih VS intellisense .. atau apakah itu pemanfaat?
sumber
Saya punya masalah serupa. VS 2010, c # CLR 2 Nunit 2.5.7, hanya membangun> solusi bersih dari VS membantu menyelesaikan masalah ini
sumber
Dalam kasus saya, saya membuat metode pengujian async yang kembali
void
. KembaliTask
bukannyavoid
menyelesaikan masalah.sumber
Sudahkah Anda menambahkan ketergantungan DLL baru-baru ini? ... seperti saya
Saya hanya mengalami masalah yang sama dan itu sangat menjengkelkan untuk tidak mendapatkan petunjuk di jendela hasil tes atau di tempat lain yang praktis.
Penyebabnya sangat bodoh: Saya baru saja menambahkan sehari sebelum ketergantungan pada DLL eksternal tambahan dalam sub-proyek, dan aplikasi proyek utama memang dibangun dan berjalan dengan benar setelah perubahan. Tetapi pengujian unit saya berada dalam proyek sejenis dengan aplikasi utama, dan dengan demikian juga memiliki ketergantungan pada sub proyek yang diubah ini di mana DLL dipanggil ... namun, lokasi runtime dari proyek uji bukan dari App utama! Jadi mengubah build untuk melakukan penyalinan DLL yang hilang ke dalam direktori runtime test memperbaiki masalahnya.
sumber
Saya menggunakan VS2013, ReSharper 9.1 dengan ekstensi MSpec dari ReSharper dan Moq. Saya mengalami kesalahan "tidak meyakinkan" yang sama.
Ternyata salah satu Mock saya dari Moq tidak diinisialisasi, hanya dinyatakan. Yang diinisialisasi semua tes berjalan lagi.
sumber
Dalam kasus saya, saya mendapatkan kesalahan ini karena mode 'Rilis' di mana pembangunan proyek UnitTests hanya dimatikan. Beralih kembali ke mode 'Debug' memperbaikinya.
Sangat mengejutkan bahwa ReSharper tidak bisa mengatakan apa-apa kalau-kalau tidak menemukan perpustakaan UnitTests sama sekali. Serius, ini memalukan;)
Semoga ini bisa membantu seseorang
sumber
Dalam kasus saya, semua tes dalam beberapa proyek uji dalam solusi mulai tidak berjalan setelah saya menambahkan proyek baru. Menggunakan VS 2017 dengan ReSharper 2017.1.2 di sini.
Pertama-tama, pastikan Anda tidak membuang waktu dengan menganggap bahwa masalah Anda terkait dengan ReSharper. Sangat mudah untuk mengasumsikan bahwa ada sesuatu yang salah dengan ReSharper jika Anda menggunakan fitur pengujian unit termasuk Unit Test Explorer . Buka Visual Studio's Test Explorer di bawah menu Test dan coba Run All ". Keuntungan tambahan melakukan ini adalah bahwa jendela output akan menampilkan pesan kesalahan yang mungkin mengarahkan Anda ke arah yang benar. Jika Anda melihat bahwa serangkaian tes yang sama tidak dijalankan, maka aman untuk mengasumsikan bahwa masalahnya adalah dengan Visual Studio dan bukan ReSharper.
Saya akhirnya menghapus dan menambahkan kembali salah satu platform solusi aktif , CPU apa pun , di Pengelola Konfigurasi . Dengan melakukannya, setelah menyimpan perubahan saya dan membuka kembali solusinya, semua tes mulai berjalan lagi.
Saya percaya ada entri konfigurasi yang tidak terduga dalam file solusi ketika saya menambahkan proyek baru dan dengan menggunakan menciptakan kembali salah satu platform, itu diperbaiki sendiri. Saya mencoba beda tetapi sulit untuk mengatakan apa yang berubah untuk menyebabkan masalah.
sumber
Bagi mereka yang mengalami masalah ini untuk proyek pengujian saya
.NET Core 2.0
diVisual Studio 2017 Community (v15.3 3)
. Saya juga menggunakan bug iniJetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346
- ada bug yang saya posting.JetBrains menyarankan untuk membuat proyek uji baru dari awal untuk mereproduksinya. Ketika saya melakukan itu dan mendapatkan tes yang berfungsi dengan baik, saya menemukan alasan yang menyebabkan masalah:
*.csproj
file Anda :Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}
"Ketika saya melakukan itu - tes mulai bekerja dengan baik.
sumber
Saya menggunakan VS2010, NUnit 2.6.3 (meskipun secara internal ReSharper mengatakan menggunakan 2.6.2?), ReSharper 7.7.1 & NCrunch 2.5.0.12 dan menjalankan hal yang sama "... tes tidak dapat disimpulkan ..." dengan NUnit, tetapi NCrunch mengatakan semuanya baik-baik saja. Untuk sebagian besar hari ini NUnit & NCrunch setuju untuk melakukan tes yang mana dan yang membutuhkan refactoring, kemudian terjadi sesuatu yang masih belum saya pahami, dan untuk sementara waktu NCrunch mengatakan saya gagal dalam tes (tetapi melangkah melalui tes menunjukkan mereka untuk lulus), kemudian memutuskan bahwa mereka semua bekerja, dan NUnit mulai mengeluh tentang semua tes saya kecuali satu dengan pesan yang sama "..test tidak dapat disimpulkan ..." yang saya lagi dapat melewati satu langkah untuk lulus meskipun NUnit melanjutkan untuk menunjukkannya sebagai "tidak meyakinkan").
Saya mencoba beberapa saran di atas tetapi tidak berhasil, dan akhirnya hanya menutup VS2010 & membuka kembali solusinya. Voila, sekarang semua tes saya senang lagi, dan NCrunch & NUnit melaporkan hasil yang sama lagi. Sayangnya saya tidak tahu apa yang berubah menyebabkan mereka tidak sinkron, tetapi menutup & membuka kembali VS2010 tampaknya telah memperbaikinya.
Mungkin orang lain akan mengalami ini dan dapat menggunakan solusi sederhana ini (jika pada akhirnya tidak memuaskan karena Anda tidak tahu apa perbaikan yang sebenarnya).
sumber
Saya punya masalah yang sama. Pelakunya adalah referensi eksternal yang tidak kompatibel dengan pengaturan build proyek saya. Untuk menyelesaikannya, saya mengklik kanan pada proyek-> properties-> build-> Platform Target-> perubahan dari Any CPU ke x86.
* .Dll tertentu yang saya kerjakan adalah System.Data.SQLite. Khusus * .dll tersebut di-hardcode untuk operasi 32 bit. Pengaturan "Any CPU" berusaha memuatnya sebagai 64 bit.
sumber
Solusi saya:
NUnit 3.2.0 memiliki beberapa masalah dengan Resharper - downgrade ke 2.6.4:
sumber
Dalam kasus saya, metode pengujian saya bersifat pribadi. Saya mengubahnya ke publik dan berhasil.
sumber
Disebabkan oleh file App.Config yang hilang (tidak rusak). Menambahkan baru (Tambah -> Item Baru ... -> File Konfigurasi Aplikasi) memperbaikinya.
sumber
Saya memiliki masalah yang sama. Ini terkait dengan versi kompatibilitas antara NUnit 3.5 dan Resharper 9.2, karena diselesaikan dengan menurunkan versi dari NUnit 3.5 ke 2.6.4. Ini berhasil untuk saya. semoga berhasil.
sumber
Jika Anda menggunakan
xUnit
, saya memecahkan masalah menginstalxunit.running.visualstudio
paket. (sedang menggunakanxUnit 2.3.1
danVS17 Enterprise 15.3.5
)sumber
Saya mengalami masalah yang sama untuk menjalankan tes menggunakan kerangka kerja NUnit. "Tidak meyakinkan: Tes tidak dijalankan" Visual Studio 2017 15.5.6
ReSharper Ultimate 2017.3.3 Build 111.0.20180302.65130
ASK Menambahkan ketergantungan proyek ke Microsoft.NET.Test.Sdk
sumber
Bagi yang terburu-buru untuk pelaksanaan tes, saya harus menggunakan VS 2017 test explorer untuk menjalankan tes;
sumber
Kesalahan ini terjadi dengan Visual Studio 2017 dan resharper versi 2018.2.3 tetapi perbaikan berlaku untuk versi Visual Studio 2019 untuk.
Cara mengatasinya, untuk mendapatkan tes yang berfungsi di Resharper, adalah hanya memperbarui ke versi terbaru dari Resharper (2019.2.1) pada saat penulisan.
sumber
Saya memiliki masalah yang sama persis dan tidak ada yang membantu.
akhirnya saya melihat bahwa saya memiliki ketidakcocokan dalam ruang nama saya pada proyek unit dan proyek uji unit.
Namespace proyek unit saya adalah unit.project dan proyek uji bernama unit.project.tests tetapi namespace default dari tes ini sama dengan unit, keduanya adalah unit.project.
Setelah saya perbarui ruang nama menjadi berbeda (satu ruang nama untuk setiap proyek) semuanya bekerja!
sumber