Live Unit Testing w Visual Studio 2017 vs dotCover + ReSharper

W komentarzu do postu na temat Live Unit Testing w nowym Visual Studio pojawiło się pytanie o porównanie go z dotCover. Musiałam zrobić małe rozeznanie, ponieważ przyznam, że dotCover niestety nie miałam okazji nigdy używać na codzień w pracy. Jednak jakiś czas temu się nim bawiłam.

Zatem do rzeczy – owszem dotCover daje nam bardzo podobne możliwości do Live Testing, ale Live naprawdę jest Live – o tym będzie za chwilkę.

Jednak jest płatny i idzie w parze z ReSharperem jako pakiet ReSharper Ultimate. Ceny zaczynają się od 89 euro – wersja roczna dla indywidualnych użytkowników przedłużających licencję po trzecim roku. Kończą gdzieś w okolicach 399 euro. Wszystko też zależy od tego czy to licencja roczna czy płacimy z góry za miesiąc. Więcej informacji znajdziecie tutaj. Tymczasem w Visual Studio dostajemy Live Testing w pakiecie. Niestety jak słusznie w komentarzu zauważył @rbl – opcja ta jest dostępna tylko w wersji Enterpise i z taką też się w żadnej firmie w której pracowałam nie spotkałam – był co najwyżej Professional. Różnica w cenie między Professional a Enterpise jest znaczna – pierwsze to kilka tysięcy dolarów, drugie kilkaset. Pełny cennik tutaj.

DotCover podobnie jak LiveUnitTesting dostarcza nam informacji na temat pokrycia kodu bezpośrednio w edytorze. Tutaj widzimy testy, które przechodzą:

Live Unit Testing - Coverage

Jeśli nie będą przechodziły ikonki z lewej zmienią kolor na czerwony.

Pierwsze co zauważyłam jeśli chodzi o różnice, to dotCover nie obsługuje MSTest. Moje okienko Continous Testing Session z testami w MSTest wyglądało tak:

Dot Cover - MSTest

Czyli troszkę jakby działa, bo widać, że testy przechodzą, ale Coverage niestety nie jest uzupełniony. Kiedy zmieniłam testy na NUnit od razu zrobiło się lepiej:

DotCover - NUnit

Pod prawym klikiem na pasku z procentami mamy przycisk który pozwala nam szybko rzucić okiem na listę testów wchodząc w skład danej części.

Ale skąd się wzięło to okienko Continous Testing Session? Otóż w menu ReSharpera mamy opcję, która go uruchamia.

Live Unit Testing

Kiedy już włączymy, możemy skonfigurować uruchamianie tych testów:

Live Unit Testing

Zatem możemy sprawić, że uruchomią się podczas każdego zapisu lub podczas każdego budowania aplikacji. I tutaj właśnie pojawia się główna różnica – Live Unit Testing wbudowane w VS 2017 naprawdę jest Live, ponieważ by testy się uruchomiły nie musimy niczego zapisywać ani budować. Zmieniamy kod, czekamy chwilkę (mniej niż sekunda) i od razu w konsoli widzimy, że testy się uruchomiły. Co do tego „czekania chwilkę”, to właśnie w pewien sposób może się okazać to dla nas trochę uciążliwe jeśli na przykład tylko zamyśliliśmy się nad kodem a on już nam testy włącza. Znalazłam ustawienie o nazwie „Testcase Timeout”, ale nie jestem pewna za co odpowiada – nie udało mi się tego znaleźć. Natomiast jego zmiana nie miała wpływu na odległość czasu pomiędzy przestaniem pisać a włączeniem testów.

Jeszcze jeśli chodzi o obsługiwanie MSTest, NUnit i XUnit – to Live Unit Testing byłam w stanie sprawdzić jedynie na MSTest, ponieważ o ile Microsoft mówi, że działa z NUnit i XUnit tylko wystarczy doinstalować rozszerzenie, to jednak nie mówi jakie dokładnie i moje próby różnych skończyły się fiaskiem:(

Dużą różnicą są też wykresy pokrycia kodu, które w tej, jak widać na zrzucie ekranu powyżej, zgrabnej formie, daje nam DotCover. Live Unit Testing daje nam tylko informacje w edytorze kodu, gdzie mamy pokrycie a gdzie nie.

I jeszcze odpowiadając na pytanie z komentarza – wersję Enterprise zainstalowałam w wersji RC i z niej właśnie pochodzą zrzuty ekranu zrobione już parę miesięcy temu na potrzeby prezentacji z tego tematu.

Co nowego w Visual Studio – część 4

Witajcie w kolejnej części cyklu na temat nowości w Visual Studio.Poprzednie części cyklu znajdziecie tutaj:
Co nowego w Visual Studio 2017 – część 1
Co nowego w Visual Studio 2017 – część 2
Co nowego w Visual Studio 2017 – część 3

Visual Studio wreszcie miało swoją premierę 7 marca, ale cykl na temat nowości jeszcze trwa. Niektórzy boją się instalować, ponieważ to taka wczesna wersja i może być problem z wieloma rzeczami. W takim razie na początek dzisiaj chciałabym się podzielić z Wami moimi doświadczeniami z VS 2017 a także z VS2015 w wersji RC. Przyznam, że używałam ich jedynie w zastosowaniach domowych w czasie gdy były RC, ale nie napotkałam na żadne nieoczekiwane problemy ze strony środowisk. Co więcej, używając VS w wersji 2015 tworzyłam kod do nagrań z kursem Helionu, który zrobiłam jakiś czas temu. Tak więc sporo kodu na nim powstało. Co do VS 2017 było tej zabawy dużo mniej. Zdaję sobie sprawę, że wiele rzeczy może zależeć od architektury komputera i tego co już mamy na nim zainstalowane.  No ale na Windows w wersji RC to już bym się nie zdecydowała:)

A teraz do rzeczy – dziś powiemy sobie o kolejnej funkcjonalności, która bardzo mi się podoba, mianowicie tzw „Live Unit Testing”. Jest to coś co pozwala nam mieć ciągły podgląd na to czy naszym radosnym kodowaniem nie zepsuliśmy jakiegoś testu oraz na szybkie przejrzenie, gdzie testów nam brakuje.

Najpierw musimy sobie tą opcję włączyć. Nie jest ona niestety dostępna w wersji Community. Znajdziemy ją w menu Test:

Enable Live Unit Testing

Gdy mamy ją włączona w okienku Output zobaczymy coś takiego:

Live Unit Testing Output

A w okienku edytora:

VS2017LiveUnitTesting2

Kreski mówią nam o tym, ze nie mamy żadnych Unit Testów dotyczących tego kawałka kodu. Możemy je szybko dodać klikając prawym klawiszem myszy pod którym mamy opcję, która otworzy nam takie oto okienko:

Add Unit Test

Możemy nawet nic nie zmieniać i kliknąć OK. Wówczas niebieskie kreseczki zmienią w czerwone krzyżyki, ponieważ testy już mamy, ale nie przechodzą:

Live Unit Testing - New Test

Jeśli uzupełnimy metodę poprawnie działającym i przechodzącym testem krzyżyki zmienią się na zielone fajeczki:

Live Unit Testing - Passing Test

W kodzie który testuje ten test również zmienią się na zielone:

Live Unit Testing - Green

Jeśli teraz w którymś momencie zepsujemy test zielone wskaźniki zmienią się z powrotem na czerwone.

Można się nieco przestraszyć tym co się stanie jeśli włączymy Live Unit Testing a mamy bardzo dużą solucję z dużą ilością projektów oraz testów. Otóż możemy włączyć tą funkcjonalność tylko dla poszczególnych projektów zawierających testy – na przykład tych dotyczących kodu nad którym w danym momencie pracujemy.

 

Co nowego w Visual Studio – część 3

Witajcie w kolejnej części cyklu na temat nowości w Visual Studio.Poprzednie części cyklu znajdziecie tutaj:
Co nowego w Visual Studio 2017 – część 1
Co nowego w Visual Studio 2017 – część 2

A dziś zobaczymy kolejne ulepszenie jakie przyniesie nam nowa wersja Visual Studio. Jest to odświeżony Intellisense. Mianowicie teraz, gdy pojawią nam się podpowiedzi podczas pisania kodu, możemy skorzystać ze skrótów klawiaturowych, by szybko odfiltrować to co nas interesuje.

VS2017Intellisense

W dolnej części okienka mamy ikonki podobne do tych z funkcjonalności, którą opisałam w pierwszej części. Jednak tutaj nie musimy klikać, ale wystarczy znać następujące skróty:

Alt + L – Locals and parameters
Alt + M – Methods
Alt + I – Interfaces
Alt + C – Classes
Alt + S – Structures
Alt + E – Enums
Alt + D – Delegates
Alt + N – Namespaces
Alt + K – Keywords
Alt + T – Snippets

By móc bardzo sprawnie posługiwać się nowym okienkiem Intellisense.

Co nowego w Visual Studio 2017 – część 2

Witajcie w kolejnej części cyklu na temat nowości w Visual Studio. Poprzednią znajdziecie tutaj:
Co nowego w Visual Studio 2017 – część 1

Niedawno Microsoft ogłosił datę publikacji nowej wersji, która obecnie jest dostępna w wersji Release Candidate. Będzie to 7 marca 2017. Trzeba wspomnieć, iż edycja 2017 jest dość wyjątkowa, ponieważ w tym roku mija dokładnie 20 lat od pierwszej edycji Visual Studio czyli Visual Studio 97.

W poprzednim artykule opisałam mój ulubiony nowy skrót klawiaturowy czyli Ctrl + T. Dziś powiemy sobie o kolejnej rzeczy, która bardzo mi się w nowej wersji podoba czyli o instalatorze. Ten zmienił się diametralnie i teraz mamy do czynienia z tzw Workloads w które zgrupowane są biblioteki potrzebne do budowania aplikacji na Windows:

Workload - Windows

Możemy wybrać tylko biblioteki do budowania aplikacji okienkowych w Windows Forms lub WPF albo aplikacji na Windows 10.

Jeśli pracujemy tylko z aplikacjami internetowymi zainteresują nas Workloads zgrupowane pod nazwą Web & Cloud:

Workload - Web & Cloud

Mamy tutaj biblioteki potrzebne do tworzenia klasycznych aplikacji webowych jak również do aplikacji .NET Core. Możemy wybrać to co dotyczy aplikacji Node.js a nawet Python czy Azure.

Z kolei jeśli interesuje nas tworzenie gier coś dla siebie znajdziemy w Workload o nazwie „Mobile & Gaming”:

Workload - Mobile & Gaming

Tutaj czeka na nas zarówno Unity jak i Xamarin a także Apache Cordova, więc możemy tworzyć aplikację w najbardziej odpowiedni dla nas sposób.

Mamy do dyspozycji zakładkę „Individual Components” dzięki której możemy wybrać na przykład jakie wersje frameworka zainstalować:

Workloads - Individual Components

Jak widać – mamy teraz bardzo duża możliwość wyboru tego co naprawdę nas interesuje i co jest nam potrzebne. Dzięki temu można zyskać sporo miejsca na dysku. Oczywiście wszystko czego nie wybraliśmy w pierwszej instalacji, możemy doinstalować w dowolnym momencie później. Podobnie z odinstalowaniem.

Co nowego w Visual Studio 2017 – część 1

Niedawno miałam okazję poprowadzić prezentację na temat Visual Studio 2017 na białostockiej grupie .NET. Ponieważ w trakcie przygotowań udało mi się zebrać całkiem sporo materiału zdecydowałam się podzielić nim tutaj.

Zacznijmy od mojej ulubionej nowości, mianowicie nowego skrótu Ctrl+T. Jest on powszechnie znany użytkownikom ReSharpera, ale tym razem Microsoft nie tylko skopiował pomysł od JetBrains. Poszedł o krok dalej i bardzo fajnie go rozwinął.

W nowej wersji Visual Studio po wciśnięciu Ctrl+T dostaniemy w prawym górnym rogu taki przykładowy widok:

Ctrl T

Owszem, przypomina nam to znane z czystego Visual Studio „Go To All”, ale są pewne dodatkowe opcje:

  • Jeśli klikniemy na którymkolwiek z wyników ukaże nam się podgląd pliku na który kliknęliśmy:Ctrl+T
  • Dodatkowo w okienku mamy do dyspozycji różne ikonki:
    Ctrl+TUmożliwiają nam one filtrowanie wyników. Dostępne filtry (patrząc od lewej) to:

    • Line
    • Types
    • Files
    • Members
    • Symbols

    Możemy zatem bezpośrednio w tym okienku przejść do jakiejś linii lub poszukać tylko plików lub typów zawierających daną nazwę.
    Możliwe jest również użycie skrótów klawiaturowych. Jeśli swoje wyszukiwanie poprzedzimy następującymi znakami:

  • : – równoważne wyszukiwaniu z filtrem Line
  • t – z filtrem Types
  • f – z filtrem Files
  • m –  z filtrem Members
  • # – z filtrem Symbols

Myślę, że będzie to jeden z najczęściej używanych przeze mnie skrótów w VS jeśli będę zmuszona do używania go bez ReSharpera. Microsoft idzie w bardzo dobrą stronę adaptując kolejne dobre rzeczy jako integralną część środowiska. Jest jeszcze przed nim długa droga, ale cieszę się z tego kierunku rozwoju.