Visual Studio birim testleri için kod kapsamına sahip mi?


83

Visual Studio 2015 Community sürümünü kullanıyorum ve kodu test etmek için birim testleri oluşturma seçeneğine sahip olduğunu biliyorum, ancak kod kapsamını test etme seçeneğini göremiyorum, bu nedenle Visual Studio'nun sahip olup olmadığını bilmek istiyorum bu seçenek veya üçüncü taraf bir eklenti kullanmam gerekiyorsa.

Üçüncü taraf bir çözüm kullanmam gerekirse, bu iyi bir seçenek olur mu?

Yanıtlar:


79

Yalnızca Visual Studio 2015 Enterprise, yerleşik kod kapsamına sahiptir. Ayrıntılar için özellik matrisine bakın.

Visual Studio içinde kod kapsamı denetimi için OpenCover.UI uzantısını kullanabilirsiniz . MSTest, nUnit ve xUnit'i destekler.

Yeni sürüm indirilebilir burada ( sürüm notları ).


Yeni uzantı sürümü artık VS Gallery visualstudiogallery.msdn.microsoft.com/…
Toni Wenzel

2
OpenCover UI, NUnit 3'ü desteklemiyor gibi görünüyor
Lennart

1
opencover.UI (VS ile entegre), kullanımı imkansız olan çok dağınık bir rapora (sonuç penceresi) sahiptir. doğrudan opencover'a gidin: allenconway.net/2015/06/…
Roman Pokrovskij

"Son sürüm - 2016". Modern Visual Studio ile çalışmıyor
Alex

47

Visual Studio 2017 kullanıyorsanız ve bu soruyla karşılaşırsanız AxoCover'ı düşünebilirsiniz. OpenCover'ı entegre eden, ancak VS2017'yi destekleyen ücretsiz bir VS uzantısıdır (aynı zamanda aktif geliştirme aşamasındadır. +1).

VS Uzantı sayfası

https://github.com/axodox/AxoTools


9
Bunun (şu anda) yalnızca .NET'in masaüstü sürümlerini desteklediğini belirtmek gerekir - yani .NET Core, yazma sırasında desteklenmiyor gibi görünmektedir.
Jay

6
12 Aralık 2017, .NET Core / Xamarin için hala desteklenmiyor
Tuan Tran

1
Evet. .net çekirdek yok. ben kurduktan hemen sonra fark ettim. :( august 2018
default_noob_network

2
Mart 2019 itibarıyla, AxoCover yalnızca xUnit 2.2'ye kadar (zaten iki yaşın üzerinde) destek veriyor ve şu anda xUnit 2.3 veya 2.4'ü destekleme planı yok. XUnit testleri çalıştırmayı umuyorsanız, zahmet etmeyin.
Sean Werkema

2
2020 Haziran ve yukarıdaki yorumlar ne yazık ki hala geçerli.
Ε Г И І И О

34

Toni'nin cevabı çok yararlı, ancak tamamen yeni başlayanlar için kapsam değerlendirmesini test etmek için hızlı bir başlangıç ​​düşündüm (benim gibi).

Daha önce belirtildiği gibi, Visual Studio Professional ve Community Editions yerleşik test kapsamı desteğine sahip değildir. Ancak oldukça kolay elde edilebilir. Visual Studion 2015 Professional'da NUnit testleri ile kullanım için adım adım yapılandırma yazacağım.

  1. NuGet arabirimini kullanarak OpenCover NUGet bileşenini kurun

  2. OpenCoverUI uzantısını edinin . Bu, Araçlar -> Uzantılar ve Güncellemeler kullanılarak doğrudan Visual Studio'dan yüklenebilir

  3. Araçlar -> Seçenekler -> OpenCover.UI Seçenekleri -> Genel'e erişerek, OpenCoverUI'yi uygun yürütülebilir dosyaları kullanacak şekilde yapılandırın

NUnit Yolu: nunit-console.exe dosyasına işaret etmelidir. Bu, yalnızca buradan indirilebilen NUnit 2.xx sürümünde bulunabilir .

OpenCover Yolu : bu, genellikle kurulu paketi göstermelidir.<solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  1. ReportGenerator NUGet paketini kurun

  2. OpenCover Test ExplorerOpenCover menüsünden erişim . Oradan testleri keşfetmeyi deneyin. Başarısız olursa, daha fazla ayrıntı için Çıktı pencerelerini kontrol edin.

  3. Daha fazla ayrıntı için OpenCover Sonuçlarını (OpenCover menüsünde) kontrol edin. Ağaç tabanlı bir görünümde Kod Kapsamı gibi ayrıntıları çıkaracaktır. Kapsanan veya kapsanmayan kodu da vurgulayabilirsiniz (sol üstteki küçük simge).

NOT: belirtildiği gibi, OpenCoverUI, NUnit'in (3.xx) en son ana sürümünü desteklemez. Bununla birlikte, testlerde bu sürüme özgü hiçbir şey kullanılmazsa, NUnit 3.xx sürümü kurulmasına bakılmaksızın sorunsuz çalışacaktır.

Bu, hızlı başlangıcı kapsar. Yorumlarda daha önce belirtildiği gibi, daha gelişmiş konfigürasyon ve otomasyon için bu makaleyi kontrol edin .


11
Uzantı, VS 2019 topluluğunda çalışmaz. Ne yazık
nicolascolman


3

Visual Studio Community 2019'da kolay bir çözüm arayan herkes için Fine Code Coverage basittir ancak iyi sonuç verir.

Kesin kapsama konusunda kesin rakamlar veremez, ancak hangi hatların yeşil / kırmızı oluklarla kaplandığını söyleyecektir.


Bu iyi bir ipucu. Ancak, yalnızca .NET Core ile çalışır.
Alexei
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.