NUnit Unit testleri, Test Adapter kuruluyken Test Explorer'da gösterilmiyor


147

VS2012 + 2013 için NUnit Test Adaptörünü kurdum. İlk kurduğumda Adaptör testleri görünüyordu, ancak bugün bazı nedenlerden dolayı görünmeyi bıraktılar. Oluşturduktan, yeniden oluşturduktan, temizledikten, yeniden başlattıktan sonra Test Gezgini'nde hiçbir şey görünmüyor. Bu neden oluyor? VS2013 Ultimate kullanıyorum.


2
Test projenize sağ tıklamayı deneyin ve ardından çalıştır'a tıklayın. Pencereleri tekrar testlerle dolduracak.
Chase Florell

@ChaseFlorell değil. Test Gezgini'ndeki yeşil çubuğun gitmeye başladığını ve bir saniye sonra durduğunu görüyorum.
RobVious

Müdahale edebilecek başka test araçlarınız var mı? Testlerimi çalıştırmak için R # kullanıyorum ve VS2012 kullanıyorum, bu yüzden ortamınızı yeterince iyi kullanmıyorum. Pencereyi kapattığımda veya küçük bir test alt kümesi çalıştırdığımda, tüm test ağacının kaybolduğunu biliyorum.
Chase Florell

Test projesini boşaltmayı, yeniden oluşturmayı ve sonra yeniden yüklemeyi
deneyebilirsiniz

@ChaseFlorell R # var ama NUnit testleri ile pekmez kadar yavaş ... ve daha önce çalışıyordu ki bu sinir bozucu. Boşaltmayı deneyeceğim.
RobVious

Yanıtlar:


88

Test projeniz 64 bitlik bir platformu hedefleyecek şekilde ayarlanmışsa, testler NUnit Test Adaptöründe görünmez.


54
Test -> Test Ayarları -> Varsayılan İşlemci Mimarisi
Brannon

6
@Brannon Öyle. Bu x64 olarak ayarlanırsa, x64 projelerindeki testler görülebilir.
Temel

2
Burada çok daha aptalca bir şey oldu - test yöntemime [Test] özelliğini eklemeyi unuttum :)
Nikolai

Bu sorun, NUnit 3 test bağdaştırıcısında hala var gibi görünüyor. Simoyd'un test adaptörü mimarisiyle ilgili çözümüne bakın (x64 vs x86).
bart

1
Bu yanlış bir cevaptır. Testleri çalıştırmak için, "Test" -> "Test Ayarları" -> "Varsayılan İşlemci Mimarisi" -> "x64"
Andrew Rondeau

182

Bir NUnit3 + sürümü kullanıyorsanız , yeni bir Test Adaptörü mevcuttur.

"Araçlar -> Uzantılar ve Güncellemeler -> Çevrimiçi" seçeneğine gidin ve "NUnit3 Test Bağdaştırıcısı" nı arayın ve ardından yükleyin.


Ekstra +1 çünkü bu, Kod Kapsamı ölçümlerinin kaybolmasıyla ilgili sorunu da çözdü.
Aidanapword

Güvenlik duvarı proxy'si url'yi Uzantılar ve Güncellemeler yoluyla engellediyse, bağdaştırıcıyı indirmek için bu url'yi kullanın. marketplace.visualstudio.com/…
Yawar Murtaza

NUnit2 Test Adaptörünü de devre dışı bırakmanız gerekebileceğini unutmayın.
Mark Pattison

Bu şekilde almakla NuGet paket yöneticisinden almak arasındaki fark nedir?
oktavian

NuGet'i kullanarak nunit API'sine erişebilirsiniz. Bu şekilde testleri Test Gezgini'nde çalıştırabilirsiniz (varsayılan olarak yalnızca MS Testini çalıştırır).
Ricardo França

57

Test derlemem 64-bit. Visual Studio 2012'nin üst kısmındaki menü çubuğundan 'Test' -> 'Test Ayarları' -> 'Varsayılan İşlemci Mimarisi' -> 'X64'ü seçebildim. "Build" menüsünden bir "Rebuild Solution" dan sonra, tüm testlerimi test gezgininde görebildim. Umarım bu gelecekte başka birine yardımcı olur = D.


3
Montajlarınızın ve programlarınızın mimarisini kontrol ettiğinizden emin olun. Çözümünüzün veya projenizin platformu açıkça x64 olarak ayarlanmış olsa da, test mimariniz eşleşmezse, testleri çalıştırmada sorun yaşarsınız.
Dodzi Dzakuma

30

NUnit sürümlerinin uyumsuzluğunu kontrol edin. Şu anda mevcut olan NUnit Test Bağdaştırıcısı yalnızca NUnit sürüm 2.6.4 ve altı için çalışır. NUnit'i sürüm 3.x'ten düşürmek için Paket Yöneticisi Konsolu> güncelleme paketi NUnit-sürümü 2.6.4'e gidin

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


6
Siz bayım, sorunumu tam olarak çözdünüz! Teşekkür ederim! NUnitTestAdapter.WIthFramework adında bir muamele yapan bir nuget paketi var!
TheAkhemist

NUnit sürümleri uyumsuzluğu ile benzer bir sorun yaşadım. Testlerimin bazıları (ama hepsi değil) Test Gezgini'nde görüntülenmiyordu, bu yüzden NUnit test adaptörünü güncellemek gibi her türlü öneriyi denedim. Daha önce NUnit'i 3.6.1'den 3.7.1'e yükseltmiştim, ancak nedense projelerimden biri hala nunit.framework.dll sürüm 3.6.1'e başvururken, diğer her şey 3.7.1'e atıfta bulunuyordu. 3.7.1'e referansı güncelledim ve bu hile yaptı. Şimdiye kadar testlerim kaybolmadı. Parmaklar kesişti!
jrupe

25

Benim durumumda 'NUnit3 Test Adaptörü' devre dışı bırakıldı. Yeniden etkinleştirmek için menüye gidin

Araçlar-> Uzantılar ve Güncellemeler ...

Sol tarafta 'Yüklü' -> 'Tümü'nü seçin.

Sağ üst köşede "nunit" için arama yapın.

Yüklü 'NUnit3 Test Bağdaştırıcınız varsa, bulunan öğe ile onu etkinleştirebilir / devre dışı bırakabilirsiniz.

görüntü açıklamasını buraya girin


2
Benim için bu işe yaramadı. Kaldırmayı denedim ve gitmiş gibi davrandı, ancak yeniden başlatmanın ardından oradaydı. NUnit'i standart bir kullanıcı olarak kurduğumu ve ardından Yönetici olarak kaldırmayı denediğimi anladım. VS bu konuda hiçbir şey söylemiyor ... Yani çözüm, yönetici ayrıcalıkları olmadan onu etkinleştirmeyi denemek veya tam tersi.
Tom

10

Bu cevap oldukça basit görünüyor ama ilk başta bana tamamen açık değildi. Çözümü (yeniden) oluşturursanız, yalnızca çözümün içinde oluşturmak üzere yapılandırılmış projeleri oluşturur.Build -> Configuration Manager

Bu benim sorunumdu, yanlışlıkla bir yapı yapılandırma ayarlarını değiştirmiş olmalıyım veya test projelerimin oluşturulmamasına neden olan bir şey (daha önce yapıldığında). Yani Test Explorerpencere güncel olmayan dll'lere bakıyordu. Bana şunu anladım ki, Cleantestlerimin çoğunun kaybolduğunu ve geri gelmediğini gördükten sonra rebuild... binklasörün daha fazla incelenmesi bu projelerin hiç inşa edilmediğini gösterdi.


Tüm projeler konfigürasyon yöneticisinde oluşturulacak şekilde ayarlanmış olmasına rağmen , testlerin tekrar gösterilmesi için her test projesini manuel olarak oluşturmak zorunda kaldım.
Noel Widmer

Test projelerimi manuel olarak oluşturdum. Bu yeterli değildi. Bu cevabın söylediğini yapmak zorundaydım.
Jared

10

Çalışan bir kurulumum vardı (çözüme bağlı olarak NUnit2 ve NUnit3 için ve 2012 ile 2017 arasında Visual Studio'nun birden çok sürümü) ve birden bir gün çalışmayı durdurdu: VS'nin herhangi bir çözümünde veya sürümünde hiçbir test algılanmadı.

Benim durumumda, silmeye yardımcı oldu %localappdata%\Temp\VisualStudioTestExplorerExtensions. VS'nin yeniden başlatılmasından sonra, her şey eskisi gibi çalıştı.


10

Eğer kullanıyorsanız VS 2017 ve .net çekirdeği , dedi burada , test framework başvurular eklemek gerekir NUnit 3.6.1 Test atlet için, NUnit3TestAdapter 3.8.0-alfa1 SDK ve teste Microsoft.NET.Test.Sdk 15.0.0 .


3
.NET Core kullanmıyorum, ancak VS2017'ye geçtiğimde NUnit test adaptörünü yüklemek benim için sorunu çözdü.
Ciaran Gallagher

8
  1. Araçlar
  2. NuGet Paket Yöneticisi
  3. Çözüm İçin NuGet Paketlerini Yönetin
  4. Araştır
  5. NUnitTestAdapter.WithFramework
  6. Testleri oluşturmak / çalıştırmak için Ctrl + R, A

görüntü açıklamasını buraya girin

NUnitTestAdapter.WithFramework kullanmak, NUnit ve NUnit Adapter sürümleri arasında çok az tutarsızlık olmasını / hiç tutarsızlık olmamasını sağlar (yani "sadece çalışır")


benim için adaptör NUnitAdapter3'e (VS Menüsü -> Araçlar-> Uzantılar ve Güncellemeler ...) + NUnit için NuGet sayfasını 2.6.3'ten 3.2.1'e güncelledikten sonra çalışmaya başlar. Teşekkürler!
gülen

1
bu benim için işe yarayan tek şeydi - "WithFramework" olmalıydı (sadece standart adaptör değil)
Mani5556

4

[TestFixureSetUp] ve [Test] belirtip belirtmediğinizi kontrol edin

test sınıfında

örneklem:

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!");
      }
   }   
}

1
TestFixtureSetup eski görünüyor, daha iyisi <NUnit.Framework.OneTimeSetUp>
Jochen

1

Xunit.runner.visualstudio nuget paketini kaldırıp yeniden kurmam gerekti. Bunu yukarıdaki tüm önerileri denedikten sonra denedim, bu yüzden bir şeylerin karışımı olabilir.


1

Bu sorunun bir diğer nedeni, eşlenmiş bir sürücüden bir proje açmanızdır - Visual Studio bu tür projeleri düzgün bir şekilde işler, ancak görünüşe göre Nunit bunları desteklemiyor.

Projeyi fiziksel olarak kopyalamak sorunu çözdü.


0

Ayrıca nunit v3.2.1'i kaldırdığımda, v3.2.1 için nunit çerçeve referansının hala çözüm gezgini projemde olduğunu buldum. Çözüm Gezgini> ProjeAdı > Referanslar

Sağ tıklarsanız sürümü gösterecektir. Bunu kaldırın Ardından Referanslar> Referans Ekle'ye sağ tıklayın.

Sürüm 2.x sürümünü arayın ve çözümü ekleyin ve ardından yeniden oluşturun.

Bu benim için çalıştı!


0

Operasyon tarafından bahsedilen sorunu yaşadım

Benim durumum, eski bir projenin teslim edilmesiydi ve testler aslında test edilen sistemin bir parçasıydı. Harici test çalıştırıcısını kullandıklarını varsayıyorum.

bu görev zinciri sorunu benim için çözdü

  • bir test projesi oluşturdu,
  • test dosyalarını oraya taşıdı
  • test projesinin derlenmesi için referanslar ekledi
  • Nunit ve Nunit bağdaştırıcısı NuGet paketlerini test projesine ekledi
  • yeniden derlendi

Nunit testlerini başarıyla uyguladım.


0

TestCaseSourceÖzniteliği kullanıyorsanız, kaynağın var olduğundan ve belgelere uyduğundan emin olun, aksi takdirde testleriniz keşfedilmeyecektir.


0

Testlerin keşfedilemediği yerde benzer bir sorun yaşadım. NUnit'in doğru sürümüne sahiptim, sürümler NUnit ve adaptör arasında eşleşti ve doğru etiketlendiği testler. VS 2017 Enterprise'ı yönetici olarak çalıştırmıyordum. VS'yi yönetici olarak başlattıktan sonra testler belirdi.


0

İçinde bir test projesi olan yeni bir çözüme başladım ve bunu orijinal problemli projemle karşılaştırdım. Orijinalin içinde bir nedenle bir app.config vardı . Bu dosyayı projeden çıkardım ve testlerimin test gezgininde yeniden göründüğünü gördüm.


0

Bende de bu sorun vardı ama nedeni farklıydı. VS2017'yi F # 4.0 ile kullanıyorum.

İlk olarak, Visual Studio'daki konsol size testlerin neden bulunamadığı konusunda yeterli ayrıntı vermez; DLL'yi testlerle yüklemede başarısız olur. Bu size daha fazla ayrıntı vereceği için komut satırında NUnit3console.exe'yi kullanın.

Benim durumumda, test adaptörünün F # Core DLL'nin (4.4.1.0) (F # 4.1) daha yeni bir sürümünü araması ve ben hala 4.4.0.0 (F # 4.0) kullanmamdı. Ben de bunu test projesinin app.config dosyasına ekledim: -

  <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>

yani önceki F # çekirdeğine yeniden yönlendirmek.


0

Test Gezgini penceresinde aniden herhangi bir test görünmediğinde aynı sorunu yaşadım. "NUnit3TestAdapter" ın güncellenmiş sürümüne sahibim

ve birçok arama ve çabadan sonra, proje özelliklerinde aşağıdaki değerleri ayarlamam gerektiğini fark ettim: [Solution Explorer penceresinde: Project> Properties'e sağ tıklayın] Build sekmesi altında Platform = x64 ve Platform target = x86 veya Herhangi bir CPU Projeyi oluşturun ve tüm testler Test Gezgini penceresinde görünecektir.

Önemli not: Çıkış penceresinde sonraki mesajı gördükten sonra bir çözüme ulaştım:

"Test çalıştırması, Framework45 ve platform X86 için oluşturulmuş DLL'leri kullanacaktır. Aşağıdaki DLL (ler) çalıştırmanın parçası olmayacak: AutomationTests.dll, Framework Framework45 ve Platform X64 için oluşturulmuştur."


0

Asılmış olan bazı msbuild.exe işlemleri vardı. Bunun benim sorunum olup olmadığını bilmiyorum, ancak askıda kalan işlemleri bulmadan önce çeşitli NUnit adaptörlerini yeniden yüklerken çok fazla iz ve hata aldı.


0

Sadece 0,02 dolarımı buraya eklemek için, dün benzer bir sorunla karşılaştım, testlerimden 168'i eksikti. Bu gönderideki her şeyi denedim - özellikle de NUnit sürümlerimin aynı olduğundan emin olarak - hepsi boşuna. Daha sonra testlerimin oynatma listelerine bölündüğünü hatırladım; ve bunlar yok yeni testler eklemek olarak otomatik olarak güncellenir . Bu yüzden çalma listelerini sildiğimde , BAM! , tüm testlerim bir kez daha geri döndü.


-1

Testlerinizin Test özelliği ile doğru şekilde işaretlendiğinden emin olun. Tüm testler yalnızca Açık özniteliğiyle işaretlenmişse, TestAdapter fikstürü tanımaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.