Wiki

Clone wiki

ASP.NET Web API / Konfiguracja Visual Studio Code

CoGotujo.pl - ASP.NET Core

Konfiguracja Visual Studio Code


Praca przy kodzie

Konfiguracja

By zacząć komfortowo pracować w VS Code potrzeba zainstalować następujące wtyczki:

Dodatkowo, w przypadku pracy na Linux następuje potrzeba dodać swojego użytkownika do grupy docker, by móc zarządzać kontenerami. W przeciwnym razie wtyczka docker nie będzie działać oraz skrypty testów jednostkowych. Poniższej sposób na rozwiązanie problemu:

#Create the docker group.
sudo groupadd docker
#Add your user to the docker group.
sudo usermod -aG docker $USER
Gdzie $USER, to Twoja nazwa użytkownika. Jednak zapis przedstawiony powyżej powinien zadziałać (zmienna środowiskowa).

⚠By wprowadzone zmiany zostały zastosowane należy zalogować się ponownie na swoje konto! ⚠

Przed uruchomieniem Visual Studio Code należy utworzyć dockerowy wolumin wydając następujące polecenie:

docker volume create --name cogotujodb --driver local
Obecne rozwiązanie spowodowane jest to błędnym montowaniem katalogów pod systemem plików NTFS - kwestia obsługi uprawnień (znany problem w internecie, tu osoby wskazują za winnego Windowsa - Wiem lepiej 😄).

Uruchamianie debugowania

Po pierwsze zawsze korzystamy z funkcji Open folder i wybieramy folder projektu (tam gdzie jest plik *.csproj). W przeciwnym przypadku VS Code "nie widzi" projektu do debugowania. By uruchomić debugowanie należy przejść do zakładki z "bugiem" na pasku po lewej stronie:

debugicon.png

Przygotowanie środowiska developerskiego - Docker 🐋

Przed rozpoczęciem debugowania należy jeszcze stworzyć potrzebne kontenery dla projektu (WebApplicationMVC). Do tego celu posłużymy się dodatkiem Docker:

  1. Należy wcisnąć kombinację klawiszy Ctrl + P. Pojawi nam się u góry "terminal VS Code".
  2. Wpisujemy teraz w nim >Docker:Compose up.
  3. Zostaniemy zapytani o konfigurację do wczytania. Jest tylko jedna, należy ją wybrać.

Po kilku sekundach mamy przygotowane środowisko developerskie. 😃 Jeśli wszystko przebiegło dobrze to powinieneś otrzymać następujący rezultat: Przechwytywanie.PNG

Debugowanie 🐛

Po lewej stronie, jak już wybrałeś odpowiednią zakładkę, na samej górze znajduje się zielona strzałeczka z napisem Debug Docker.

debug.PNG

Wystarczy, że klikniesz w strzałeczkę i rozpocznie się debugowanie. Gdy aplikacja zostanie uruchomiona to otworzy się Tobie Twoja domyślna przeglądarka www z adresem pod którym dostępna jest aplikacja.

Do dzieła i udanej zabawy! 😎

Ps: Jeśli chcesz lepiej zapoznać się z debugowaniem w VS Code to zapraszam do artykułu.

Zakończenie pracy

Przed zamknięciem VS Code zalecam zamknąć stworzone kontenery na potrzeby projektu (WebApplicationMVC). Przy wyłączeniu systemu operacyjnego także zostaną one wyłączone. Do tego celu posłużymy się dodatkiem Docker:

  1. Należy wcisnąć kombinację klawiszy Ctrl + P. Pojawi nam się u góry "terminal VS Code".
  2. Wpisujemy teraz w nim >Docker:Compose down.
  3. Zostaniemy zapytani o konfigurację do wczytania. Jest tylko jedna, należy ją wybrać.

Teraz to już wszystko co powinieneś wiedzieć o debugowaniu. Powodzenia 😄


Jak uruchamiamy testy jednostkowe?

W projekcie UnitTests znajdują się dwa skrypty:

  • RunUnitTests.bat (dla Windows)
  • RunUnitTests.sh (dla Linux)

Uruchamiają one docker-compose.unit-tests.yml. To znaczy, tworzony jest kontener z bazą danych do testów oraz kontener zawierający dotnetcore sdk. Projekt testów jest automatycznie budowany oraz wykonywany. Jeśli jakiś test "nie przechodzi" wiadomość zwrotna wyświetla się w terminalu. Zawiera ona nazwę testu oraz numer linijki w pliku.


Napotkany błąd

Błąd "wypluwany" przez Kestrel w ramach braku certyfikatu https. By rozwiązać ten problem należy wygenerować certyfikat i podać go w konfiguracji docker image związanego z aplikacją.

Wygenenerowanie certyfikatu:

dotnet dev-certs https -v -ep ./obj/Docker/publish/cert-aspnetcore.pfx -p password
  • ./obj/Docker/publish/cert-aspnetcore.pfx - ścieżka wraz z nazwą dla nowego certyfikatu,
  • -p password - password to hasło używane z certyfikatem.

Konfiguracja docker-compose:

    environment:
      - Kestrel__Certificates__Default__Path=/app/cert-aspnetcore.pfx
      - Kestrel__Certificates__Default__Password=password

Źródła:

  1. Wpis na blogu o debugowaniu w VS Code w dockerze
  2. Dokumentacja Dockera
  3. Debugowanie w VS Code

Strona główna

Updated