Visual Studio 2012 neden testlerimi bulamıyor?


221

Ben yerleşik kullanmak bazı testler var Microsoft.VisualStudio.TestTools.UnitTesting, ama onları çalıştırmak için alınamıyor.

Visual studio 2012 ultimate kullanıyorum.

İki projeden oluşan bir çözümüm var; Bir test vardır using Microsoft.VisualStudio.TestTools.UnitTesting, [TestClass]sınıf önce, [TestMethod]önce test yöntemleri ve referans Microsoft.VisualStudio.QualityTools.UnitTestFramework(sürüm 10.0.0.0, çalışma zamanı versiyon V2.0.50727). Dot-net framework 3.5, 4 ve 4.5 denedim başkaları yeniden hedefleme hatası vermek.

Çözümü ve projeyi oluşturmaya çalıştım. Test explorer `` Mevcut tüm testleri keşfetmek için çözümünüzü oluşturun. Çözümünüzdeki tüm testleri oluşturmak, keşfetmek ve çalıştırmak için "tümünü çalıştır" ı tıklayın.

Soru şu: Testleri bulmak için nasıl görsel stüdyo edinirim?


Bunu da takip etmeye çalıştınız: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx ama başarılı olamadım: İstendiğinde bölümün başlangıcında takılı kalıyorum sağ tıklayın ve seçin create tests. Yok create tests.


Bu test var (derler, ancak test gezgini görünmez):

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

Şimdi bunun paylaşılan bir sürücüde olduğu için (aşağıda silinen cevaba bakınız) olduğunu keşfettim, ancak henüz nasıl çözüleceğini bilmiyorum. (güvenlik ayarlarıyla ilgili bir şey olabilir).


Hangi versiyon VS 2012? TestDriven.Net gibi bir test koşucusu indirebilir veya Resharper'da bir koşucu indirebilirsiniz.
Brett Allred

Visual studio 2012 ultimate kullanıyorum.
ctrl-alt-delor

Lütfen referans olarak eklediğiniz çerçeve sürümünü ve UnitTesting kitaplığı sürümünü paylaşın
Adil

5
Benim durumumda app.config dosyasını kaldırmak, birim test gezgini düzeltti
Chris Richner

4
Çıktı penceresindeki 'Test' kategorisinde hata aramayı deneyin. Sürüm derlemesinden işlevsel testler oluşturuyorum ve hata ayıklama derlemesini kullanarak hata ayıklamaya çalıştığımda (dll'leri farklı bir klasör yapısında bulunuyor), herhangi bir derleme hatası almıyorum, ancak açılan menüden testlerin altına bakmak zorundayım.
Bunları çözdüğümde

Yanıtlar:


227

Aynı belirtilerim vardı, ama farklı koşullar altında.

Peter Lamberg'in çözümüne bir adım daha ekledim - Çözümünüzü / projenizi temizleyin.

Unittest projem x64'ü hedefliyor. Projeyi oluşturduğumda başlangıçta x86'yı hedefliyordu.

X64'e geçtikten sonra tüm birim testlerim kayboldu.

Test Menüsü -> Test Ayarı - Varsayılan İşlemci Mimarisi -> x64 öğesine gitmek zorunda kaldım.

Hala gelmediler.

Bir yapı yaptım.

Hala görünmedi.

Sonunda bir temizlik yaptı

Sonra ortaya çıktılar.

Clean Solution ve Clean'in ayar değiştiğinde top oynamaya yönelik çözümleri elde etmede oldukça yararlı olduğunu düşünüyorum. Bazen uç noktaya gitmem objve bindizinleri silmem ve yeniden yapmam gerekiyor.


Temizlik yapmak bazen yardımcı olur, ancak sorun bu değildir. Ağ sürücülerindeki projelerle ilgili bir sorunum var. Ve derlemenin hiç yardımcı olmadığı gerçeği, sadece bir derleme aracı aracının bir belirtisidir.
ctrl-alt-delor

7
Vaov! "Temiz Çözüm" gerçekten işe yarıyor gibi görünüyor (sadece bir yeniden inşa aksine). Bunun Visual Studio 6.0'da yararlı bir kesmek olmayı bıraktığını düşündüm!
Dave

"Temiz" bu sorunu yaşayan iş arkadaşım için işe yaramadı. TFS çalışma alanından tüm kaynak kodunu sildikten ve en son (w / overwrite) aldıktan sonra onun için çalıştı. Sonra harika çalıştı!
Michael R

2
Bu benim içindi. X86, Herhangi bir CPU, x64 karışımı içeren bir çözümde, belirli bir projenin testleri bulunamadı. Çözümü temizledim, test ayarının varsayılan mimarisini değiştirdim ve yeniden oluşturdum ve sonra her şey görülebildi. Mimarinin değiştirilmesi farklı bir CPU mimarisi altında derlenen testleri keşfettiği için gerçekten mantıklı değil.
Ben H

2
Varsayılan işlemciyi değiştirdiğimde - tüm testlerim gösterildi. Bunun için çok teşekkürler!
Dan But

160

Lütfen herkese açık anahtar kelimeyi sınıf tanımınıza ekleyin . Test sınıfınız şu anda kendi montajının dışında görünmüyor.

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

24
Benim için yaptım, neredeyse utanç verici Kendi başıma bulamadım :)
landi

5
Ben de bu sorunu vardı, benim [TestMethod]diğer kod kopyala-yapıştır nedeniyle statik olması nedeniyle oldu.
Eylül'de

2
@Seph: Benim durağanım [TestMethod]çünkü UserTest1.csyeni test projesinde böyle oldu! Ayrıca sorunumu çözdü.
Andre Luus

4
Ayrıca staticyönteminizin önüne koymayın . Bunu neden alışkanlıktan sık sık yaptığımı bilmiyorum.
levininja

1
Bu benim için yaptı, bu kadar açık olması gereken bir şeyde nasıl bu kadar zaman kaybedebileceğiniz ilginç. Cevap için teşekkürler Joe King
Thulani Chivandikwa

58

Bu bazen işe yarar.

Test menüsü altındaki işlemci mimarisinin, çözümü oluşturmak için kullandığınız mimariyle eşleşip eşleşmediğini kontrol edin.

Test -> Test Ayarları -> Varsayılan İşlemci Mimarisi -> x86 / x64

Diğer yayınlarda belirtildiği gibi, Test Gezgini penceresinin açık olduğundan emin olun. Test -> Windows -> Test Gezgini

Daha sonra testlerle projenin yeniden oluşturulması, testlerin Test Gezgini'nde görünmesini sağlamalıdır.

Düzenleme: Ourjamie aşağıda belirtildiği gibi, temiz bir yapı yapmak da yardımcı olabilir. Buna ek olarak, burada karşılaştığım bir şey daha var:

"Oluştur" onay kutusu, çözüm altında oluşturduğum yeni bir test projesi için Configuration Manager'da seçili değil.

Oluştur -> Yapılandırma Yöneticisi'ne gidin. Test projenizde tüm çözüm yapılandırmaları ve çözüm platformları için yapı onay kutusu işaretli olduğundan emin olun.


Evet, bu işe yaramayacak başka nedenler olabilir, ancak benim için neden işe yaramadığına dair aşağıdaki cevaba bakınız. (paylaşımlı klasörler varsayılan olarak devre dışıdır), bunu nasıl değiştireceğimizi söyleyebilirseniz size bazı noktalar vereceğim.
ctrl-alt-delor

Bir x64 gibi bir işlemci yok, ama microsoft'un x86-64 / amd64 / x86e için bu terimi kullandığı şey. Ayrıca x86 yok, sadece x86 ailesi var. X bilinmeyeni temsil eder, bu nedenle x64 ailesinin üyeleri 164, 264, 364 olacaktır ... VEYA x86 86 bit işlemciydi.
ctrl-alt-delor

Cevabınız için teşekkürler, bana yardımcı oluyor (x86 derlemelerinden x64 derlemelerine
geçtim

VS 2015'te bile Test Gezgini penceresinin açık olması işe yaradı. Komut satırından da testler yapabileceğime sevindim.
Bryan

32

Visual Studio 2012'im var ve Test Gezgini'nde Testleri göremedim,

Bu yüzden aşağıdakileri yükledim: NUnit Test Adapter

Bu benim için sorunu çözdü!


1
NuGetInstall-Package NUnitTestAdapter
Darren Hale

Teşekkürler @DarrenHale. Bu paketi NuGet'te ararken, NUnit 2.6.4 Framework dahil NUnit TestAdapter adlı bir paket de buldum .
ray

18

Son deneyimlerime göre yukarıdakilerin hepsi işe yaramadı. Test yöntemim

public async void ListCaseReplace() { ... }

görünmüyor ama iyi derleniyordu. asyncAnahtar kelimeyi kaldırdığımda test Gezgini'nde test edildi. Bu bacause async void'ateşle ve unut' yöntemidir. Yöntemi yapın async Taskve testinizi geri alacaksınız!

Ayrıca, Test projesinin yapılandırmasının "Oluştur" olarak ayarlanmamış olması da testlerin görünmesini engelleyecektir. Configuration Manager> Oluşturmak için Testinizi kontrol edin.


2
Bunu anlamak benim için iyi bir zaman aldı. Async olmak için birkaç yöntemi yeniden düzenledim ve sadece anahtar kelimeleri testlere ekledim. Sadece bununla yeni bir birim testi kodladığımda diğer testlerin de eksik olduğunu fark ettim. Bunun neden olduğunu açıklayan bu cevabı buldum .
julealgon

12

Orijinal poster belirttiği gibi proje paylaşılan bir sürücüde olduğundan. VS.NET, test derlemelerinizi yüklemeden ve çalıştırmadan önce ağ konumuna güvenmelidir. Bu blog gönderisini okuyun .

VS.NET'in bir ağ paylaşımındaki şeyleri yüklemesine izin vermek için bunları güvenilir konumlara eklemeniz (paylaşımlar) gerekir. Tam güven listesine bir konum eklemek için (ortamınız için gerektiği şekilde değiştirin):

 caspol -m -ag 1.2 -url file:///H:/* FullTrust

Mevcut güvenilir konumları doğrulamak veya listelemek için şu komutu çalıştırın:

 caspol -lg

Artık cevapla ilgilenmiyorum, çünkü bu cevap soru soran tarafından doğrulanmamıştır. İşinize yarıyorsa (ya da çalışmıyorsa) aşağıya bir yorum ekleyin.
ctrl-alt-delor

6
@richard Sorununuzun farklı nedenlerine yönelik çözümleri açıklayan diğer yanıtları doğrulamadığınız ve onaylamadığınız bir yanıtı kabul ediyor musunuz? ....Bu tuhaf!
Stephan Bauer

1
Bunun benim için bir sorun olduğu ortaya çıktı, ama çözüm değil. Her şeyi yerel olarak taşıdım ve tüm testler bulundu! Teşekkürler!
Travis Swientek

1
CasPol.exealtında bulunabilir %windir%\Microsoft.NET\Framework[64]\[version]. Politikayı uygun mimari için ayarladığınızı doğrulayın. Kaynak: msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.100%29.aspx
EpicVoyage

Benim için sorun da buydu. O kadar sinir bozucu VS onları almadım ama nedenine dair sıfır gösterge verdi!
kaybee99

10

Bulduğum bir sorun, çözüm bir ağ sürücüsü / ağ konumu / paylaşılan sürücüden çalışıyorsa Test Gezgini'nde (hiçbir şey görünmüyor) testlerin bulunmamasıdır

Bir ortam değişkeni ekleyerek bunu düzeltebilirsiniz.

COMPLUS_LoadFromRemoteSources ve değerini 1 olarak ayarlayın


6

Ben de aynı sorunu yaşadım .. Benim durumumda bir özel mülkiyet neden oldu TestContext.

Aşağıdakine değiştirmek yardımcı oldu:

public TestContext TestContext
{
    get;
    set;
}

Çözeltiyi temizledikten ve oluşturduktan sonra (@Ourjamie'nin cevabında açıklandığı gibi), etkilenen test sınıfındaki test yöntemleri Test Gezgini'nde mevcuttu.


Tamam aynı belirtiler, bu yüzden neyi (neyi) değiştirdiğinizi açıklarsanız, aşağı oyu kaldırır.
ctrl-alt-delor

1
Tam olarak aynıydım, tüm ipliği takip ettim, sonra bu konuya geldim ve beni halka duyurma fikrine getirdim, bingo: yeni testlerim ortaya çıktı. Önceki yorumları anlıyorum ama ... bu bizi Google'dan getirdiğinden ... testler görünmediğinde okunacak konu bu.
edelwater

1
Sorunumun nedeni buydu. Bir bağımlılık arayüzü için özel bir alan olarak bir alanım vardı. Sen bir hayat kurtarıcısın!
Alex

6

Çözümü bir ağ paylaşımında açmaya çalışırken de aynı sorunla karşılaştım. Bu durumda Test Gezgini tarafından birim testi algılanmaz. Çözüm şu şekilde ortaya çıkıyor:

Denetim Masası -> Internet Seçenekleri -> "Güvenlik" Sekmesi -> "İntranet" i tıklayın ve ağ paylaşımını tutan sunucu IP adresini veya ana bilgisayar adını "Siteler" listesine ekleyin.

Bunu yaptıktan sonra çözümü yeniden derledim ve şimdi testler ortaya çıktı. Bu, @BigT tarafından verilen cevaba oldukça benzer olmalıdır.


6

Bazı yaygın test problemlerini çözmek için hızlı kontrol listesi. Emin olun:

  1. Test sınıfı ve test yöntemleri public
  2. Test sınıfı [TestClass]özelliğe sahiptir
  3. Test yöntemlerinin [TestMethod]özelliği

Bu yardımcı olmazsa, temizlemeyi, çözümü yeniden oluşturmayı ve Visual Studio'yu yeniden başlatmayı deneyin.


Bu, ziyaretçilerin çoğunun sorunlarını bu soruya düzeltir ve cevapların çoğunu özetler, ancak sorudaki sorunu kapsamaz.
ctrl-alt-delor

1
Teşekkür ederim. UTA001: TestClass attribute defined on non-public class
Jarek Przygódzki

6

Hata alıyordum: "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."

Visual Studio'yu Yönetici olarak çalıştırmayı deneyin. Bu benim için çalıştı.

Bu hatayı tartışan başka bir Stack Overflow yazısı var ve aynı çözüm onlar için çalışıyor. Soru, bunun neden işe yaradığını gösteriyor.


3
Benim için de çalıştı! Bunun ayrı bir konu olduğunu düşünüyorum.
Justin Morgan

2
Hey bu işe yarıyor adamım. Çok teşekkür ederim .. Yönetici olarak çalışmadan çalışması için herhangi bir geçici çözüm var mı?
Sriram Sakthivel

2
Maalesef yönetici olarak çalışmanın iyi bir çözüm olduğunu düşünmüyorum. Bunun tek yol olduğuna dair kanıt olmadığı sürece.
ctrl-alt-delor

Yönetici olarak çalışmak genellikle büyük bir sorun değildir. Ancak sorunlardan biri, Workitem'i görünüme gönderememenizdir.
Edward Olamisan

Cevabınızı ilgili bir SO yayınına bağlanmak için düzenlediniz, umursamıyorsunuz. Sriram ve richard'a katılıyorum. Bu işe yarıyor olsa da, bir çözüm değil, bir çözümdür. Neden işe yarıyor bile belirsiz görünüyor.
Steven Jeuris

4

Bazen aynı belirtileri görüyorum.

Yaptığım şey:
1. Test Gezgini penceresini
kapattı 2. Çözümü temizledi
3. Çözümü yeniden oluştur
4. Test -> Windows -> Test Gezgini'nden Test Gezgini penceresini yeniden başlat.

Testimi Test Gezgini penceresinde aldım.


Bunun aynı sorun olduğunu düşünmüyorum.
ctrl-alt-delor

3
Ben düşünüyorum IS sadece oluyor, aynı sorunu neden başka bir şey tarafından.
Stephan Bauer

2

Üstteki menü çubuğundan ...

Test -> Çalıştır -> Tüm Testler

Tüm testleri Test Gezgini'nden de test edebilirsiniz (Test -> Windows -> Test Gezgini)

Ayrıca VS 2012 ile, herhangi bir şeyi kaçırırsanız, sağ üstteki Hızlı Başlat çubuğunu kullanarak aramayı deneyin (Ctrl + Q) "Test"

Bu yardımcı olur umarım.


Bunu denedim, ikisi de nunit ile çalışıyor. Ama bu sefer başka birinin testlerini yazılı olarak yapmaya çalışıyorum, başka Microsoft.VisualStudio.TestTools.UnitTestingne yanlış yaptığımı biliyor musunuz?
ctrl-alt-delor

Herhangi bir fark yaratmaz ... Bazen birim testi keşfetmek değil olur ... bu yüzden u test explorer açın ve çözüm inşa, bir süre içinde birim testi getirecektir ... Belki u zaten biliyor olabilirsiniz. ..
Adil

2
Sadece hızlı bir sürümünü veya test araçları içermeyen bir sürümü kullandığınızdan emin olmak istedim. Üçüncü taraf bir test çalıştırıcısı yüklemeyi denediniz mi?
Brett Allred

2

Bu sorunu gidermek için en iyi yolu bir .proj msbuild dosyası oluşturmak ve bu dosyaya bir sorun var tavşan birim test projeleri eklemek ve mstest komut satırı sürümünü kullanarak sınamaları çalıştırmak için bulundu. App.config dosyamda yalnızca ilk testlerden çalıştırıldığında ortaya çıkan küçük bir yapılandırma sorunu buldum - aksi takdirde test projesi gayet iyi yapılmış. Ayrıca bu yöntemle ilgili dolaylı referans sorunları da bulacaksınız. Mstest kullanarak Birim testini komut satırından çalıştırarak temiz bir çözüm yapabilir, çözümü yeniden oluşturabilirsiniz ve testiniz doğru bir şekilde keşfedilmelidir.


benim durumumda app.config ayrıca birim testinin görünümünü de öldürdü. App.config dosyasını sildikten ve test projesini yeniden oluşturduktan sonra sonunda geri döndüler!
Chris Richner

2

Benim durumumda başka bir şeydi. Bir paket yükledim ve daha sonra kaldırdım ve önceki bir sürümü yeniden yükledim. Bu configuration/runtime/asssemblyBinding/dependencyIdentity, app.config dosyamda bir yeniden yönlendirme bıraktı . Düzeltmek zorunda kaldım. OutputPencereye bakarak Testsve açılır menüden " " seçeneğini seçerek anladım . Hata mesajı vardı. Bu bir acıydı ... Umarım başka birine yardımcı olur.


2

Bu, OP'nin sorusunu cevaplamak yerine buraya ulaşan insanlara yardımcı olmaktan daha fazlasıdır:

Görsel stüdyoyu kapatıp yeniden açmayı deneyin, hile yaptım benim için.

Umarım bu birine yardımcı olur.


2

Bunun daha eski bir soru olduğunu biliyorum, ancak Visual Studio 2015 ile yeni oluşturulan test sınıfımın tanınamadığı yerlerde sorunlar yaşıyordum. Her şeyi denedim. Sorunu oluşturan şey, sınıfın "projeye dahil edilmemesi" idi. Bunu yalnızca Visual Studio'yu yeniden başlatma ve test sınıfımın orada olmadığını fark ettim. Gizli dosyaları gösterdikten sonra, yazdığım diğer sınıfların yanı sıra gördüm. umarım yardımcı olur


2

Çözümü farklı bir bilgisayarda oluşturmaya çalıştığımda bu sorunu birçok kez yaşıyordum.

Ben de NUnit ve Specflow kullanıyorum. Varsayılan olarak Test projem X86'yı hedefliyor Ancak bunu X64 olarak değiştirmem gerekiyor. Adımlar 1. Test Menüsü -> Test Ayarı - Varsayılan İşlemci Mimarisi -> x64. 2. Temiz Build 3. Build 4. Hala testler görünmediyse. 5. Araçlar  Uzantılar ve Güncellemeler'e gidin, ardından NUnit ve Specflow kitaplıklarını yükleyin.

Sonra genellikle Test Editör'de test görünecektir.


@srebella Bu sorunu çözdüğünüz için iyi. Bunu çözmek için günler geçirdim. Pls deneyimlerinizi toplulukla paylaşın. Eğer işe yaradığına inanıyorsanız lütfen bu cevabı en üste koyun. Teşekkürler :-)
Shiran Jayawardena

1

VS 2012'yi En Son Güncelleme'ye güncelledim. yani visual studio güncelleme 3. Bu benim için sorunu düzeltti.


1

Benim için çözüm biraz daha az karmaşıktı.

Makineme yeni bir çözüm getirmiştim (gitHub'dan klonlanmış) ve Visual Studio'nun oluşturduğu otomatik oluşturulan .cs dosyalarını izlemiyoruz. (Her özellik dosyası için aynı ada sahip bir .cs dosyası vardır)

İlişkili .cs dosyaları olmadan çözümü açmak aslında bağlı yöntemlere gitmeme izin veriyor, bu yüzden specflow düzgün bağlanmış gibi görünüyordu, ancak Test Gezgini'nde test adlarını görüntüleyemedim.

Bu sorun için, özellik dosyalarını projeden hariç tutup daha sonra yeniden dahil ederek, VS'yi bu otomatik oluşturulan kod arkası dosyalarını yeniden oluşturmaya zorladı.

Bundan sonra, testleri test kaşifinde görebildim.


1

Çözümüm Web için Microsoft Visual Studio 2012 Express'ten Microsoft Visual Studio 2013'e yükseltilirken bu sorunla karşılaştım.

2012'de Birim Testleri projesi oluşturmuştum ve 2013'te açıldıktan sonra Birim Test projesi test kaşifinde herhangi bir test göstermeyecekti. Testleri çalıştırmayı veya hata ayıklamayı denediğimde, çıkış penceresinde aşağıdakileri söyleyerek başarısız oldum:

    Failed to initialize client proxy: 
    could not connect to vstest.discoveryengine.x86.exe

Ayrıca, testlerde hata ayıklama işleminde bir Visual Studio 2012 örneği başlatıldığını fark ettim. Bu, Birim Testleri projesinin hala 2012'ye atıfta bulunduğuna dair ipucu verdi. Visual Studio'nun bu sürümü için Studio Unit Test Framework DLL:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Sürüm numarasını 11.0'dan 12.0'a değiştirdim:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Hepsini yeniden oluşturdum ve bu sorunu düzeltti - tüm testler Test Gezgini'nde bulundu ve şimdi tüm testler bulundu ve mükemmel çalışıyor.


1

Test projesi olup olmadığını kontrol değil ayarlı sadece Gecikme işareti proje özelliklerinde -> imzalanması. Öyleyse, seçimini kaldırın ve temiz bir yeniden oluşturma yapın.


veya sn -Vr *,<public key token>VS geliştirici komut isteminde yönetici olarak yerel makinenizdeki imza kontrolünü atlayın
Silas

1

VS2013 Ultimate'da bir ağ paylaşımında çözümü açmaya çalışırken aynı sorunu vurdum.

Sorunu açarak düzelttim

Denetim Masası -> Internet Seçenekleri -> "Güvenlik" Sekmesi -> "Yerel intranet" i tıklayın, siteleri tıklayın ve "İntranet ağını otomatik olarak algıla" seçeneğinin işaretli olduğundan emin olun.


1

Bunların hepsi harika cevaplar, ama bildiğim bir sebep daha var; Ben sadece onunla karşılaştım. Testlerimden birinde, kullanılmayan özel bir sınıfım olduğunu belirten bir ReSharper mesajı aldım. Yaklaşan bir testte kullanacağım bir sınıftı. Bu aslında tüm testlerimin kaybolmasına neden oldu .


1

Başvurulan derlemeleri, "Yerel Kopyala" seçeneği "Yanlış" olarak ayarlanmış olabilecek derlemeler için denetleyin.

Test projeniz kendi klasörüne (örneğin bin / Hata Ayıklama) derlenirse ve proje başka bir montaja bağlıysa ve Kaynaklar listesindeki bu derlemelerden biri Kopyala Yerel = "Yanlış" olarak işaretlenmişse, derleme eksik bağımlılıklar nedeniyle yüklenemez ve bir derlemeden sonra testleriniz yüklenmeyecektir.


1

NUnit Framework 2.6.4, NUnit Test Adapter ile iyi çalışmıyor gibi görünüyor. Web sitesinde test adaptörünün sadece NUnit Framework 2.6.3 ile çalışacağından bahsedilmektedir.

Bu benim sorunumdu: 1. VS2012'de Nuget aracılığıyla NUnit ve NUnit Test Adaptörünü ayrı indirmiştim. Her nasılsa NUnit 2.6.4'e güncellendi Aniden test senaryolarımı görmedim.

Düzeltme:

  1. Nuget ve Nuget Test adaptörünü kaldırın

    a. Araçlar> Nuget> Nuget Pkg yöneticisi> Nuget Pkg'ı Çözüm için Yönetme

    b. Kurulu paketleri listele

    c. Yönet'i tıklayın

    d. Projelerinizin kontrolünü kaldırın

  2. NUnit 2.6.3 Framework dahil NUnit Test Adaptörünü kurun

  3. Temiz / Yeniden oluştur çözümü

  4. Test> Test Gezgini> Tümünü Çalıştır'ı açın

Tüm test vakalarını görüyorum

Bu yardımcı olur umarım


1

Buradaki çözümlerin hiçbiri bana yardımcı olmadı. Testler bir çözüm için bulunmazken, aynı projeleri referans alan başka bir çözüm işe yaradı. Sonunda solutionname.v12.suo dosyasını silerek çözdüm.


1

Aynı sorun vardı, ama biraz farklı.

Visual studio 2012 kullanıyordum. Bazı nedenlerden ötürü, sadece ilk oluşturulan dosyanın testleri çalışıyordu. Ancak başka bir dosyadaki testler çalışmadı. Burada yayınlanan farklı çözümler denedim, işe yaramadı.

Sonunda test sınıfında, sınıf içindeki ilk yöntem olan özel bir yöntem olduğumu anladım. Sadece bir test yönteminden sonra özel yöntemi taşıdım ; şimdi, [TestMethod]öznitelikli bir yöntem sınıf içindeki ilk yöntemdir. Garip, ama şimdi işe yarıyor.

Umarım bu bir gün birine yardım eder.


1

Testler zaman uyumsuz yöntemleri sevmez. Örneğin:

    [TestMethod]
    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

Bunu yaptıktan sonra:

    [TestMethod]
    public void TestAuth()
    {
        TestMethod1();
    }

    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

Testi gördü.


Daha iyi bir cevap[Test] public void XamarinExampleTest() { // This workaround is necessary on Xamarin, // which doesn't support async unit test methods. Task.Run(async () => { // Actual test code here. }).GetAwaiter().GetResult(); }
Robert Green MBA

3
"Testler değil sevmiyorum zaman uyumsuz yöntemleri" olduğunu yanlış . "Testler değil sevmiyorum zaman uyumsuz boşluk yöntemleri" olan gerçek ve çözüm basitçe bir test yöntemini beyan etmektir Görev zaman uyumsuz .
Massimiliano Kraus

1

Cevabımı bu şekilde eklemek, bunun Google'daki en iyi sonuçtur.

Visual Studio 2015 kullanıyorum ve (bilmeden - koştum Install-Package NUnit) NUnit3 paketi NuGet'i test projeme yükledim. Zaten NUnit Test Adapter eklentisini kurdum ve testlerim hala görünmüyordu.

NUnit3 Test Adaptörünü Araçlar> Uzantılar ve Güncellemeler aracılığıyla kurmak bunu benim için düzeltti.

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.