Czy program Visual Studio ma pokrycie kodu dla testów jednostkowych?

83

Używam Visual Studio 2015 Community Edition i wiem, że ma on opcję tworzenia testów jednostkowych do testowania kodu, ale nie widzę opcji testowania pokrycia kodu, więc chciałbym wiedzieć, czy Visual Studio ma tę opcję lub jeśli muszę użyć wtyczki innej firmy.

Jeśli muszę skorzystać z rozwiązania innej firmy, czy byłaby to dobra opcja?

Álvaro García
źródło

Odpowiedzi:

79

Tylko program Visual Studio 2015 Enterprise ma wbudowane pokrycie kodu. Zobacz zestawienie funkcji, aby uzyskać szczegółowe informacje.

Możesz użyć rozszerzenia OpenCover.UI do sprawdzania pokrycia kodu w programie Visual Studio. Obsługuje MSTest, nUnit i xUnit.

Nową wersję można pobrać stąd ( uwagi do wydania ).

Toni Wenzel
źródło
Nowa wersja rozszerzenia jest już dostępna w VS Gallery visualstudiogallery.msdn.microsoft.com/…
Toni Wenzel
2
Wygląda na to, że OpenCover UI nie obsługuje NUnit 3
Lennart
1
opencover.UI (zintegrowany z VS) ma bardzo niechlujny raport (okno wyników), którego po prostu nie da się użyć. przejdź bezpośrednio do opencover: allenconway.net/2015/06/…
Roman Pokrovskij
„Najnowsza wersja - 2016”. Nie działa z nowoczesnym programem Visual Studio
Alex
47

Jeśli używasz programu Visual Studio 2017 i napotkasz to pytanie, możesz rozważyć AxoCover. Jest to darmowe rozszerzenie VS, które integruje OpenCover, ale obsługuje VS2017 (wydaje się, że jest w trakcie aktywnego rozwoju. +1).

Strona rozszerzenia VS

https://github.com/axodox/AxoTools

Gordon Bean
źródło
9
Warto zauważyć, że ta (obecnie) obsługuje tylko wersje .NET dla komputerów stacjonarnych - tj. .NET Core nie wydaje się być obsługiwana w momencie pisania.
Jay
6
12 grudnia 2017 r., Nadal nie obsługuje .NET Core / Xamarin
Tuan Tran
1
tak. bez rdzenia .net. właśnie uświadomiłem sobie po zainstalowaniu. :( sierpień 2018
default_noob_network
2
Od marca 2019 roku AxoCover obsługuje również tylko do xUnit 2.2 (który ma już ponad dwa lata), bez planów obsługi xUnit 2.3 lub 2.4. Jeśli masz nadzieję przeprowadzić testy xUnit, nie przejmuj się.
Sean Werkema
2
Jest czerwiec 2020 roku i niestety powyższe komentarze są nadal aktualne.
Ε Г И І И О
34

ToniOdpowiedź jest bardzo przydatna, ale pomyślałem, że to szybki start dla początkujących, aby przetestować ocenę pokrycia (tak jak ja).

Jak już wspomniano, Visual Studio Professional i Community Edition nie mają wbudowanej obsługi zakresu testów. Można go jednak dość łatwo uzyskać. Napiszę konfigurację krok po kroku do użycia z testami NUnit w Visual Studion 2015 Professional.

  1. zainstalować składnik OpenCover NUGet przy użyciu interfejsu NuGet

  2. Dostać rozszerzenie OpenCoverUI . Można to zainstalować bezpośrednio z programu Visual Studio przy użyciu narzędzi -> rozszerzenia i aktualizacje

  3. Skonfiguruj OpenCoverUI do korzystania z odpowiednich plików wykonywalnych, wchodząc w Narzędzia -> Opcje -> Opcje OpenCover.UI -> Ogólne

Ścieżka NUnit: musi wskazywać na plik `nunit-console.exe. Można go znaleźć tylko w wersji NUnit 2.xx, którą można pobrać tutaj .

OpenCover Path : zwykle powinno wskazywać na zainstalowany pakiet<solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  1. Zainstaluj pakiet ReportGenerator NUGet

  2. Dostęp OpenCover Test Explorer z menu OpenCover. Spróbuj znaleźć tam testy. Jeśli to się nie powiedzie, sprawdź okna wyjściowe, aby uzyskać więcej informacji.

  3. Sprawdź wyniki OpenCover (w menu OpenCover), aby uzyskać więcej informacji. Wyświetli szczegóły, takie jak pokrycie kodu, w widoku drzewa. Możesz także zaznaczyć kod, który jest lub nie jest objęty (mała ikona w lewym górnym rogu).

UWAGA: jak wspomniano, OpenCoverUI nie obsługuje najnowszej głównej wersji NUnit (3.xx). Jeśli jednak w testach nie zostanie użyte nic specyficznego dla tej wersji, będzie działać bez problemów, niezależnie od zainstalowania wersji NUnit 3.xx.

Obejmuje to szybki start. Jak już wspomniano w komentarzach, bardziej zaawansowana konfiguracja i automatyzacja znajdują się w tym artykule.

Alexei
źródło
11
Rozszerzenie nie działa na społeczności VS 2019. Szkoda
nicolascolman
@nicolascolman Tak, ale Wygląda na to, że Pokrycie Fine Code działa .
Alexei,
3

Dla każdego, kto szuka łatwego rozwiązania w programie Visual Studio Community 2019, pakiet Fine Code Coverage jest proste, ale działa dobrze.

Nie może podać dokładnych liczb dotyczących dokładnego pokrycia, ale powie, które linie są pokryte zielonymi / czerwonymi rynnami.

Bas
źródło
To dobra wskazówka. Jednak działa tylko z .NET Core.
Alexei