Narzędzie do testów .NET
dotCover to narzędzie do przeprowadzania testów jednostkowych i testów pokrycia kodu, które pozwala developerom .NET zobaczyć w łatwy sposób jak dobrze ich aplikacje są pokryte testami jednostkowymi. Oryginalnie wydany jako dodatek do ReSharpera, dotCover wyewoluował w samodzielne narzędzie, które zawiera w sobie funkcje ReSharpera dotyczące przeprowadzania testów jednostkowych w oparciu o wiele frameworków.
Cechy dotCover
dotCover jest narzędziem do przeprowadzania testów jednostkowych i pokrycia kodu, które działa bezpośrednio w Visual Studio i pomaga Ci w określeniu, w jakim stopniu Twój kod jest pokryty testami jednostkowymi, zapewnia świetne metody do wizualizacji pokrycia kodu i jest w stanie sprostać wymaganiom ciągłej integracji. dotCover oblicza i raportuje pokrycie kodu na poziomie wyrażeń w aplikacjach opartych na .NET, Silverlight i .NET Core.
Integracja z Visual Studio
dotCover jest pluginem do Visual Studio, który daje Ci możliwość analizy i wizualizacji pokrycia kodu bez konieczności opuszczania edytora. Jego możliwości obejmują także wykonywanie testów jednostkowych i analizy wyników testów pokrycia w Visual Studio, jak również obsługę różnych schematów kolorystycznych i ikon.
dotCover w pełni obsługuje Visual Studio 2010, 2012, 2013, 2015 i 2017.
Ciągłe testowanie
dotCover wprowadza ciągłe testowanie, czyli nowoczesne podejście do testów jednostkowych. dotCover rozpoznaje w locie, które testy jednostkowe obejmują ostatnie zmiany kodu i automatycznie przeprowadza dla Ciebie wyłącznie te testy.
Zależnie od wybranych ustawień dotCover może wykrywać i/lub przeprowadzać testy obejmujące zmiany w kodzie przy zapisie pliku, budowania rozwiązania lub jak tylko się nakaże to dotCover.
Możesz używać ciągłego testowania ze wszystkimi swoimi testami, lub wyraźnie określić, które testy mają być wykonywane w sposób ciągły, a które w sposób tradycyjny.
Podświetlanie pokrycia w Visual Studio
Aby zobrazować dane dotyczące pokrycia, dotCover może podświetlić odpowiednie linie kodu bezpośrednio w edytorze Visual Studio. Istnieje możliwość przełączania się pomiędzy podświetlaniem znaczników, podświetlaniem tła, i połączeniem tych dwóch opcji.
Warto zaznaczyć, że podświetlanie pokazuje nie tylko który kod jest pokryty testami a który nie, ale też które kawałki kodu przeszły testy, a które nie. Kolor zielony oznacza, że dany fragment pomyślnie przeszedł testy, kolor czerwony oznacza, że przynajmniej jeden test obejmujący dany kod się nie powiódł, a kolor szary oznacza, że kod nie jest objęty testami.
Podgląd punktów zapalnych
Podgląd gorących punktów został zaprojektowany po to, aby zidentyfikować najbardziej ryzykowne metody w Twojej aplikacji. Gorące punkty są obliczane na podstawie złożoności cyklomatycznejoraz stopnia pokrycia danej metody testami.
Wykonywanie i zarządzanie testami jednostkowymi
dotCover zawiera w sobie narzędzie do wykonywania testów jednostkowych, które jest częścią innego narzędzia od JetBrains dla developerów .NET, pluginu ReSharper.
Narzędzie to pozwala na wykonywanie testów bezpośrednio w Visual Studio, zarządzanie testami poprzez sesje, i obsługuje różne frameworki testowe, a mianowicie MSTest, NUnit, xUnit (obsługa wbudowana) oraz MSpec (poprzez plugin).
Zdalne testy pokrycia
Możesz przeprowadzać analizę pokrycia testów jednostkowych na maszynach zdalnych, po których wyniki są przesyłane z powrotem na Twoją maszynę. Jak tylko rozpoczniesz analizę pokrycia, dotCover przesyła binarki i listę testów, które mają być wykonane na serwerze zdalnym.
Wszystkie obliczenia są wykonywane przez serwer, a snapshot pokrycia zostaje przesłany na Twój komputer. Możesz wówczas sprawdzić wyniki pokrycia w taki sam sposób, jak dane z analizy lokalnej.
Filtry pokrycia
Czasami nie chcesz znać danych pokrycia dla całego rozwiązania. Na przykład możesz interesować się statystykami pokrycia konkretnego kodu.
W tym wypadku możesz ustawić globalne lub zależne od rozwiązania filtry dotyczące projektu, przestrzeni nazw, typu, lub poszczególnych jego elementów. Dostępne są także filtry atrybutów, które ograniczają zbieranie informacji pokrycia do kodu oznaczonego (lub nie) określonymi atrybutami.
Wyłączanie węzłów z drzewa pokrycia
Jako alternatywa do ustawianych z góry filtrów lub aplikowanych do określonych rozwiązań, możesz wyłączać określone pozycje z wyników pokrycia w miarę jak nad nimi pracujesz.
Kiedy już posiadasz zebrane dane pokrycia, możesz wykluczyć określone węzły z drzewa pokrycia (oraz opcjonalnie utworzyć trwały filtr). Jak tylko wprowadzisz odpowiednie zmiany dotCover natychmiast przeliczy ponownie statystyki pokrycia.
Formaty raportów
dotCover pomaga przetwarzać dane w dokładnie taki sposób, jaki potrzebujesz.
Możliwość eksportowania do kilku formatów, włączając w to HTML, XML, JSON oraz XML dla NDepend, pozwala na dzielenie się raportami pokrycia z resztą zespołu, lub przekazywać informacje o pokryciu do odbiorców zewnętrznych.
Analiza pokrycia jako część ciągłej integracji
dotCover pasuje idealnie do serwerów ciągłej integracji, a już szczególnie do własnego produktu JetBrains, czyli TeamCity.
Po pierwsze, poprzez dodatek TeamCity do Visual Studio, dotCover może uzyskać dane dotyczące pokrycia z serwera TeamCity – bez uruchamiania analizy pokrycia na maszynie lokalnej.
Po drugie, silnik odpowiadający za analizę pokrycia jest włączony w darmową wersję TeamCity, co pomaga dodawać testy pokrycia do procesu ciągłej integracji i tworzyć na serwerze raporty pokrycia. TeamCity rozumie dane wyjściowe konsolowej wersji dotCover i podświetla wszystkie błędy i ostrzeżenia w logu budowania.
Pokrycie testami jednostkowymi
Główną funkcją dotCover jest analiza pokrycia kodu testami jednostkowymi, czyli pozwala odkryć, które części kodu aplikacji są objęte testami jednostkowymi, a które nie.
dotCover wyświetla obok wyników testów jednostkowych drzewo pokrycia które pokazuje, jak dokładnie dany projekt, przestrzeń nazw, typ czy jego składowa są pokryte testami jednostkowymi.