Tes Unit NUnit tidak muncul di Test Explorer dengan Test Adapter diinstal

145

Saya telah menginstal NUnit Test Adapter untuk VS2012 + 2013. Ketika saya pertama kali menginstal tes Adapter muncul, tetapi mereka berhenti muncul karena beberapa alasan hari ini. Setelah membangun, membangun kembali, membersihkan, memulai kembali, tidak ada yang muncul di Test Explorer. Mengapa ini terjadi? Saya menggunakan VS2013 Ultimate.

RobVious
sumber
2
Coba klik kanan pada proyek pengujian Anda dan kemudian klik jalankan. Ini akan mengisi windows dengan tes lagi.
Chase Florell
@ ChaseFlorell tidak. Saya melihat bilah hijau di Test Explorer mulai pergi dan kemudian berhenti sepersekian detik kemudian.
RobVious
Apakah Anda memiliki alat uji lain yang dapat mengganggu? Saya menggunakan R # untuk menjalankan tes saya, dan saya menggunakan VS2012, jadi saya tidak cukup lingkungan Anda. Saya tahu bahwa ketika saya menutup jendela, atau menjalankan sebagian kecil tes, pohon tes lengkap menghilang.
Chase Florell
Anda dapat mencoba membongkar proyek uji, membangun kembali, dan kemudian memuat ulang ...
Chase Florell
@ ChaseFlorell Saya punya R # tetapi lambat seperti molase dengan tes NUnit ... dan itu berhasil sebelum yang frustasi. Saya akan coba bongkar.
RobVious

Jawaban:

87

Jika proyek pengujian Anda diatur untuk menargetkan platform 64bit, tes tidak akan muncul di NUnit Test Adapter.

Brannon
sumber
54
Mungkin perlu mencocokkan arsitektur yang ditentukan dalam menu di Test -> Test Settings -> Default Processor Architecture
Brannon
6
@Rannon Tidak. Jika itu diatur ke x64, tes dalam proyek x64 terlihat.
Dasar
2
Sesuatu yang lebih bodoh telah terjadi di sini - lupa menambahkan atribut [Uji] ke metode pengujian saya :)
Nikolai
Masalah ini tampaknya masih ada di adaptor uji NUnit 3. Lihat solusi Simoyd mengenai arsitektur adaptor uji (x64 vs x86).
Bart
1
Ini jawaban yang salah. Untuk menjalankan tes, pilih "Tes" -> "Pengaturan Tes" -> "Arsitektur Prosesor Default" -> "x64"
Andrew Rondeau
182

Jika Anda menggunakan versi NUnit3 + , ada Adaptor Uji baru yang tersedia.

Buka "Alat -> Ekstensi dan Pembaruan -> Online" dan cari "NUnit3 Test Adapter" dan kemudian instal.

Ricardo França
sumber
Ekstra +1 karena ini juga memperbaiki masalah dengan metrik Cakupan Kode menghilang.
Aidanapword
Jika proxy firewall telah memblokir url melalui Extensions and Updates kemudian gunakan url ini untuk mengunduh adaptor. marketplace.visualstudio.com/...
Yawar Murtaza
Perhatikan bahwa Anda mungkin juga perlu menonaktifkan Adaptor Uji NUnit2.
Mark Pattison
Apa perbedaan antara mendapatkannya dengan cara ini dan mendapatkannya dari manajer paket NuGet?
oktavian
Menggunakan NuGet Anda akan memiliki akses ke api nunit. Dengan menggunakan cara ini Anda akan dapat menjalankan tes pada Test Explorer (secara default hanya menjalankan Tes MS).
Ricardo França
57

Rakitan pengujian saya adalah 64-bit. Dari bilah menu di bagian atas visual studio 2012, saya dapat memilih 'Test' -> 'Test Settings' -> 'Default Processor Architecture' -> 'X64'. Setelah 'Rebuild Solution' dari menu 'Build', saya dapat melihat semua tes saya di test explorer. Semoga ini membantu orang lain di masa depan = D.

Simoyd
sumber
3
Pastikan Anda memeriksa arsitektur perangkat dan program Anda. Meskipun platform untuk solusi atau proyek Anda mungkin secara eksplisit diatur ke x64, jika arsitektur pengujian Anda tidak cocok, Anda akan kesulitan menjalankan tes.
Dodzi Dzakuma
30

Periksa ketidakcocokan versi NUnit. NUnit Test Adapter yang saat ini tersedia hanya berfungsi untuk NUnit versi 2.6.4 dan di bawah ini. Untuk menurunkan NUnit dari versi 3.x pergi ke Package Manager Console> update-package NUnit -versi 2.6.4

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html

collo
sumber
6
Anda Tuan, telah memecahkan masalah saya dengan tepat! Terima kasih! Ada paket nuget yang disebut NUnitTestAdapter.WIthFramework yang berfungsi dengan baik!
TheAkhemist
Saya punya masalah serupa dengan versi NUnit yang tidak cocok. Beberapa (tetapi tidak semua) pengujian saya tidak ditampilkan di Test Explorer jadi saya mencoba semua jenis rekomendasi seperti memperbarui adaptor tes NUnit. Saya sebelumnya telah memutakhirkan NUnit dari 3.6.1 ke 3.7.1 tetapi untuk beberapa alasan salah satu proyek saya masih merujuk pada nunit.framework.dll versi 3.6.1 sementara yang lainnya mereferensikan 3.7.1. Saya memperbarui referensi ke 3.7.1 dan ini berhasil. Sejauh ini tes saya belum hilang. Semoga saja!
jrupe
23

Dalam situasi saya, 'NUnit3 Test Adapter' telah dinonaktifkan. Untuk mengaktifkannya kembali, buka menu

Alat-> Ekstensi dan Pembaruan ...

Di sebelah kiri pilih 'Dipasang' -> 'Semua'.

Di sudut kanan atas cari 'nunit'.

Jika Anda menginstal 'NUnit3 Test Adapter', dengan item yang ditemukan Anda dapat mengaktifkan / menonaktifkannya.

masukkan deskripsi gambar di sini

sahl04
sumber
2
Bagi saya ini tidak berhasil. Mencoba menghapus dan berpura-pura hilang tetapi itu ada di sana setelah restart. Saya tahu bahwa saya menginstal NUnit sebagai pengguna standar dan kemudian mencoba mencopotnya sebagai Administrator. VS tidak mengatakan apa-apa tentang ini ... Jadi solusinya adalah mencoba mengaktifkannya tanpa hak administrator atau sebaliknya.
Tom
10

Jawaban ini tampaknya sangat mendasar tetapi pada awalnya tidak sepenuhnya jelas bagi saya. Jika Anda (kembali) membangun solusinya, ia hanya membangun proyek yang dikonfigurasikan untuk membangun diBuild -> Configuration Manager

Ini adalah masalah saya, saya harus secara tidak sengaja mengubah pengaturan konfigurasi bangunan atau sesuatu yang menyebabkan proyek pengujian saya tidak membangun (ketika sebelumnya). Jadi Test Explorerjendela sedang melihat dll yang kedaluwarsa. Menjadi jelas bagi saya ini adalah kasus setelah melakukan Cleandan melihat sebagian besar tes saya hilang dan tidak kembali setelah rebuild... pemeriksaan lebih lanjut binfolder menunjukkan bahwa proyek-proyek ini tidak sedang dibangun sama sekali.

MoMo
sumber
Meskipun semua proyek ditetapkan untuk membangun di Manajer konfigurasi saya harus secara manual membangun setiap proyek pengujian untuk membuat tes muncul lagi.
Noel Widmer
Saya secara manual membangun proyek pengujian saya. Itu belum cukup. Saya harus melakukan apa yang dikatakan jawaban ini.
Jared
10

Saya memiliki pengaturan yang berfungsi (untuk NUnit2 dan NUnit3 tergantung pada solusinya, dan beberapa versi Visual Studio antara 2012 dan 2017), dan tiba-tiba berhenti bekerja pada suatu hari: tidak ada tes yang terdeteksi dalam solusi atau versi VS.

Dalam kasus saya, itu membantu untuk menghapus %localappdata%\Temp\VisualStudioTestExplorerExtensions. Setelah restart VS, semuanya bekerja seperti sebelumnya.

realMarkusSchmidt
sumber
10

Jika Anda menggunakan VS 2017 dan .net core , seperti yang dikatakan di sini , Anda harus menambahkan referensi ke kerangka uji NUnit 3.6.1 , ke test runner NUnit3TestAdapter 3.8.0-alpha1 dan ke tes SDK Microsoft.NET.Test.Sdk 15.0.0 .

Arvand
sumber
3
Saya tidak menggunakan .NET Core, tetapi menginstal adaptor uji NUnit ketika saya pindah ke VS2017 memecahkan masalah bagi saya.
Ciaran Gallagher
8
  1. Alat
  2. Manajer Paket NuGet
  3. Kelola Paket NuGet Sebagai Solusi
  4. Telusuri
  5. NUnitTestAdapter.Dengan Pekerjaan
  6. Ctrl + R, A untuk membuat / menjalankan tes

masukkan deskripsi gambar di sini

Menggunakan NUnitTestAdapter. Dengan Framework memastikan ada sedikit / tidak ada inkonsistensi di seluruh versi NUnit dan NUnit Adapter (yaitu "itu hanya berfungsi")

brntsllvn
sumber
bagi saya itu mulai berfungsi setelah memperbarui adaptor ke NUnitAdapter3 (VS Menu -> Tools-> Extensions And Updates ...) + perbarui halaman NuGet untuk NUnit dari 2.6.3 ke 3.2.1. Terima kasih!
smily
1
ini adalah satu-satunya hal yang bekerja untuk saya - harus menjadi "WithFramework" (bukan hanya adaptor standar)
Mani5556
4

Periksa apakah Anda telah menyatakan [TestFixureSetUp] dan [Test]

di kelas tes

Sampel:

namespace ClassLibrary1
{
   public class SimpleCalculator
   {
      public Calculator _calculator;
      [TestFixtureSetUp]
      public void initialize()
      {
         _calculator = new Calculator();
      }
      [Test]
      public void DivideTest()
      {
         int a = 10;
         int b = 2;
         int expectedValue = a/b;
         int actualValue = _calculator.Divide(a, b);
         Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
      }
   }   
}
Indika Wijesooriya
sumber
1
TestFixtureSetup tampaknya sudah usang, lebih baik <NUnit.Framework.OneTimeSetUp>
Jochen
1

Saya harus menghapus instalan kemudian menginstal ulang paket nuget xunit.runner.visualstudio. Saya mencoba ini setelah mencoba semua saran di atas, jadi mungkin itu campuran hal.

JayC
sumber
1

Salah satu penyebab lain dari masalah ini adalah jika Anda membuka proyek dari drive yang dipetakan - Visual Studio menangani proyek seperti itu dengan benar, tetapi ternyata Nunit tidak mendukungnya.

Menyalin proyek ke fisik memperbaiki masalah.

Adelin
sumber
0

Saya juga menemukan bahwa ketika saya menghapus instalan nunit v3.2.1, referensi kerangka nunit untuk v3.2.1 masih ada dalam proyek saya di solution explorer. Solution Explorer> ProjectName > Referensi

Jika Anda mengklik kanan itu akan menampilkan versi. Hapus ini Kemudian Klik kanan pada Referensi> Tambah Referensi.

Cari versi 2.x versi dan tambahkan lalu bangun kembali solusi.

Itu berhasil bagi saya!

RShome
sumber
0

Saya mengalami masalah yang disebutkan oleh op

Kasus saya adalah saya diberi proyek lama dan tes itu sebenarnya bagian dari sistem yang diuji. Saya berasumsi mereka menggunakan pelari tes eksternal.

rantai tugas ini menyelesaikan masalah untuk saya

  • menciptakan proyek uji,
  • memindahkan file uji di sana
  • menambahkan referensi sehingga proyek uji akan dikompilasi
  • menambahkan paket NuGet adaptor Nunit dan Nunit ke proyek uji
  • dikompilasi ulang

saya berhasil menjalankan tes Nunit.

greg
sumber
0

Jika Anda menggunakan TestCaseSourceatribut, pastikan sumbernya ada dan menghormati dokumentasi , jika tidak pengujian Anda tidak akan ditemukan.

Adelin
sumber
0

Saya punya masalah serupa di mana tes di mana tidak ditemukan. Saya memiliki versi NUnit yang benar, versi yang cocok antara NUnit dan adaptor, dan tes mana yang ditandai dengan benar. Saya menjalankan VS 2017 Enterprise bukan sebagai administrator. Setelah memulai VS sebagai administrator tes muncul.

Robert Strickland
sumber
0

Saya memulai solusi baru dengan proyek uji di dalamnya, dan membandingkannya dengan proyek asli saya yang bermasalah. Dokumen asli, karena alasan tertentu, memiliki app.config di dalamnya. Saya mengecualikan file itu dari proyek dan melihat tes saya muncul kembali di test explorer.

Emmet Brickowski
sumber
0

Saya juga memiliki masalah ini tetapi penyebabnya berbeda. Saya menggunakan VS2017 dengan F # 4.0.

Pertama, konsol di Visual Studio tidak memberi Anda cukup detail mengapa tes tidak dapat ditemukan; itu hanya akan gagal memuat DLL dengan tes. Jadi gunakan NUnit3console.exe pada baris perintah karena ini memberi Anda lebih banyak detail.

Dalam kasus saya, itu karena adaptor tes mencari versi yang lebih baru dari F # Core DLL (4.4.1.0) (F # 4.1) sedangkan saya masih menggunakan 4.4.0.0 (F # 4.0). Jadi saya baru saja menambahkan ini ke app.config dari proyek uji: -

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

yaitu mengarahkan ke inti F # sebelumnya.

Russ Freeman
sumber
0

Saya memiliki masalah yang sama, ketika tiba-tiba tes apa pun tidak muncul di jendela Test Explorer. Saya memiliki versi terbaru dari "NUnit3TestAdapter"

dan setelah banyak pencarian dan upaya, saya menemukan bahwa saya perlu menetapkan nilai-nilai berikut di properti proyek: [Di jendela Solution Explorer: klik kanan pada Project> Properties] Di bawah tab Build, atur Platform = x64, dan atur Target platform = x86 atau Setiap CPU Build the project dan semua tes akan muncul di jendela Test Explorer.

Catatan penting: Saya menemukan solusi setelah melihat pesan berikutnya di jendela output:

"Uji coba akan menggunakan DLL yang dibuat untuk framework Framework45 dan platform X86. DLL berikut tidak akan menjadi bagian dari proses: AutomationTests.dll dibangun untuk Framework Framework45 dan Platform X64."

C. Mar
sumber
0

Saya punya beberapa proses msbuild.exe yang digantung. Saya tidak tahu apakah itu masalah saya atau tidak, tetapi butuh banyak jejak dan kesalahan dengan menginstal ulang berbagai adaptor NUnit sebelum saya menemukan proses yang macet.

Andrew Rondeau
sumber
0

Hanya untuk menambahkan $ .02 saya di sini, saya mengalami masalah yang sama baru kemarin, di mana 168 tes saya hilang. Saya mencoba hampir semua yang ada di postingan ini - terutama memastikan versi NUnit saya sama - semuanya sia-sia. Saya kemudian ingat bahwa tes saya dibagi menjadi beberapa playlist; dan ini tidak diperbarui secara otomatis saat Anda menambahkan tes baru . Jadi, ketika saya menghapus daftar main, BAM! , semua tes saya kembali lagi.

Brian
sumber
-1

Pastikan tes Anda ditandai dengan benar dengan atribut Test. Jika semua tes ditandai dengan hanya atribut Eksplisit, TestAdapter tidak mengenali fixture.

Shea Leslein
sumber