Instrukcja laboratoryjna cz.3



Podobne dokumenty
Instrukcja laboratoryjna

Załącznik 1 instrukcje instalacji

Załącznik nr 8. do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej województwo podkarpackie

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Dokumentacja fillup - MS SQL

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

Załącznik 1 instrukcje instalacji

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Git, Bitbucket, IntelliJ IDEA

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

timetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Instrukcja instalacji

Laboratorium - Użycie narzędzia Przywracanie systemu w Windows Vista

Podgląd z rejestratorów IPOX na komputerze z systemem WINDOWS za pomocą programu NVMS-2.0 LITE

INSTRUKCJA INSTALACJI PŁATNOŚCI TRANSFERUJ.PL

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Opisane poniżej czynności może wykonać administrator komputera lub administrator serwera SQL (tj. użytkownik sa).

Konfiguracja Javy. Jak prawidłowo skonfigurować środowisko Java. Jak zacząć? Poradnik dla systemów Windows 7,8, 8.1 i 10. Wersja 1.

Spis treści. FAQ: /PL Data: 30/06/2015. Instalacja polskiej wersji LOGO! Soft Comfort. 1 Pobranie pliku 2

Baza danych sql. 1. Wprowadzenie

Konfiguracja konta pocztowego w Thunderbird

PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Programy LeftHand - Obsługa plików JPK. Wrzesień 2016

Programowanie niskopoziomowe

By móc zainstalować plugin niezbędna jest uprzednia instalacja Notowań Online 3 oraz programu do analizy technicznej AmiBroker.

Palety by CTI. Instrukcja

Narodowy Program Foresight wdrażanie wyników

Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Instrukcja. Rejestracji i aktywacji konta w systemie so-open.pl DOTACJE NA INNOWACJE; SOFTWARE OPERATIONS SP. Z O. O.

Kostki OLAP i język MDX

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Zaawansowane aplikacje internetowe - laboratorium

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Wprowadzenie do Doctrine ORM

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Poradnik zetula.pl. Jak założyć konto na zetula.pl. i zabezpieczyć dane na swoim komputerze?

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

OPPassessment Przewodnik Praktyka

Synchronizator plików (SSC) - dokumentacja

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows XP

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji.

System magazynowy małego sklepu.

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Przewodnik... Budowanie listy Odbiorców

Product Update Funkcjonalność ADR dla przemienników Częstotliwości PowerFlex 750 oraz 525 6

Instrukcja aktualizacji oprogramowania. Wersja dokumentu: 01i00 Aktualizacja:

Aplikacje WWW - laboratorium

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Wdrożenie modułu płatności eservice dla systemu Drupal Commerce 7.x-1.9

Budowanie listy Odbiorców

5.6.2 Laboratorium: Punkty przywracania

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Wdrożenie modułu płatności eservice. dla systemu Drupal Commerce 7.x-1.9

Rozwiązywanie problemów z Javą

INSTALACJA DOSTĘPU DO INTERNETU

1. Instalacja certyfkatu OSX 10.9

Instrukcja instalacji aplikacji MuoviSelect 2.0

Instrukcja obsługi certyfikatu kwalifikowanego w programie Płatnik.

1. Instalacja Programu

Instrukcja instalacji Control Expert 3.0

Aplikacja do podpisu cyfrowego npodpis

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

Zarządzanie Infrastrukturą IT

Instrukcja obsługi aplikacji Karty Pojazdów dla Dealerów Samochodowych

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

Laboratorium - Instalacja Virtual PC

Instrukcja instalacji wtyczki Przelewy24

Uruchamianie bazy PostgreSQL

Instalacja NOD32 Remote Administrator

Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2. Instrukcja tworzenia bazy danych dla programu AUTOSAT 3. wersja 0.0.

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

System Zdalnej Obsługi Certyfikatów Instrukcja użytkownika

Programy LeftHand - Obsługa plików JPK. Luty 2017

Szpieg 2.0 Instrukcja użytkownika

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Instrukcja konfiguracji urządzenia Comarch TNA Gateway Plus

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

1. MOZILLA THUNDERBIRD (31.3.0) 2 2. WINDOWS LIVE MAIL THE BAT HOME EDITION ( BIT) 30

Podstawy technologii WWW

Instrukcja instalacji i obsługi programu Szpieg 3

Aplikacje WWW - laboratorium

Transkrypt:

Synteza aplikacji biznesowych 2014/15 Instrukcja laboratoryjna cz.3 Testy funkcjonalne (aplikacja TeamCity) Prowadzący: Tomasz Goluch Wersja: 3.0

Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z bazy danych. Ich testowanie nie należy do najłatwiejszych z wielu powodów. M.in. problemem może być przygotowanie danych testowych w bazie danych oraz zmiana jej zawartości podczas przeprowadzania testów (np. dodanie/zmodyfikowanie rekordu). Celem ćwiczenia jest stworzenie testów dla aplikacji z wykorzystaniem rzeczywistej bazy danych. Dodatkowe zadanie polega na rozszerzeniu istniejącej aplikacji o określoną funkcjonalność oraz automatyzację napisanych testów w oparciu o aplikację TeamCity. Solucja Została przygotowana solucja z dwoma projektami (do pobrania ze strony przedmiotu). Pierwszy projekt jest biblioteką, która zawiera kod produkcyjny, drugi projekt zawiera test (MSTest). Projekty są poprawnie skonfigurowane oraz zawierają wszystkie niezbędne biblioteki (Entity Framework 5.0). Aplikacja skonfigurowana jest tak, że używa bazy danych w folderze D:\Temp\blog-test.mdf, dlatego też należy stworzyć ten folder, lub zmienić konfigurację w projekcie z testami (app.config). Aplikacja korzysta z narzędzia Entity Framework i zawiera klasę z modelem Post, kontekst bazy danych ( Code First ) BlogContext oraz klasę repozytorium PostRepository, która stanowi warstwę abstrakcji nad klasą kontekstu (wzorzec Repozytorium). W pierwszej kolejności należy zbudować całą solucję i uruchomić istniejący test za pomocą narzędzia wbudowanego w Visual Studio 2010 klikając PPM na nazwie testu i wybierając odpowiednią opcję.

Wynik testu jest negatywny ponieważ metoda zwróciła 0 rekordów, a oczekiwana liczba to 1. Można sprawić, żeby test dał wynik pozytywny poprzez dodanie rekordu do tabeli w bazie danych. Aby to zrobić należy otworzyć plik bazy za pomocą Server Explorera w narzędziu Visual Studio 2010 (Tools -> Connect to Database a następnie wpisać dane jak poniżej).

Jeśli plik z bazą nie znajduje się w folderze c:\temp należy się upewnić, że projekt z testami został przebudowany oraz testy zostały uruchomione (ponieważ baza tworzy się podczas wywołania testu). Następnie należy dodać rekord do tabeli Posts (wybierając opcję Show Table Data z menu kontekstowego tabeli) - dane nie są istotne tylko sam fakt istnienia rekordu. NASTĘPNIE NALEŻY ZAMKNĄĆ POŁĄCZENIE Z BAZĄ DANYCH (w Server Exlorere). Po dodaniu rekordów należy ponownie uruchomić testy tak jak poprzednio. Jeśli wszystko zostało wykonane poprawnie należy zgłosić ten fakt prowadzącemu. Przygotowanie danych w ten sposób jest bardzo niewydajne i wymusza aby wszystkie testy bazowały na jednym (niezmiennym) stanie bazy. Dlatego też dużo lepszym rozwiązaniem jest przygotowanie danych w środowisku testowym. Aby to zrobić należy dodać podany poniżej kod na końcu części arrange w teście. // -- prepare data in db context.posts.tolist().foreach(x => context.posts.remove(x)); context.posts.add(new Post { Author = "test", Content = "test, test, test..." }); context.savechanges(); Następnie należy uruchomić ponownie test. Wynik powinien być również pozytywny. Należy zgłosić ten fakt prowadzącemu. Ten sposób również jest mało wydajny, ponieważ kod ten musi być kopiowany do każdego testu. Można kod przygotowujący dane wynieść do metody z atrybutem [TestInitialize], ale wtedy również musimy w ten sam sposób przygotowywać wszystkie inne klasy testowe. Do projektu została dołączona biblioteka, która umieszczona jest w folderze packages/dbtesthelpers/ TDD.DbTestHelpers.dll. Aby skorzystać z biblioteki należy dodać klasę bazową DbBaseTest<BlogFixtures> dla klasy RepositoryTests, która znajduje się w namespace ie TDD.DbTestHelpers.Core. Klasę BlogFixtures należy stworzyć w projekcie z testami i powinna ona wyglądać następująco:

public class BlogFixtures : YamlDbFixture<BlogContext, BlogFixturesModel> { public BlogFixtures() { SetYamlFiles("posts.yml"); } } Należy uzupełnić brakujące usingi, natomiast klasa BlogFixtures powinna wyglądać następująco: public class BlogFixturesModel { public FixtureTable<Post> Posts { get; set; } } Jeśli wszystko zostało wykonane poprawnie projekt powinien się budować. Ostatnim krokiem jest dodanie danych, w tym celu należy stworzyć folder Fixtures oraz dodać do niego plik posts.yml: Posts: test-post: Author: test Content: test, test, test... Należy zwrócić uwagę na białe znaki. Nie należy uważyć tabulatorów w plikach yaml lecz dwóch spacji. Biblioteka jest skonfigurowana poprawnie, należy usunąć kod dodany do testu, który miał przygotowywać bazę danych oraz uruchomić test. Jeśli wynik jest poprawny należy fakt ten zgłosić prowadzącemu. Aby zobaczyć jak działa biblioteka można dodać kolejny post i zmienić test tak, aby weryfikował istnienie dwóch postów.

Zadania do wykonania: 1) Rozszerzyć funkcjonalność repozytorium o możliwość dodawania postów 2) Walidację danych (pola wymagane) 3) (dodatkowe domowe) Dodanie drugiej tabeli (np. komentarze) oraz napisanie obsługi dodawania komentarza i wyświetlenia komentarzy dla konkretnego postu. Uwaga: aby używać relacji pomiędzy tabelami w entity framework należy: 1) Rozszerzyć BlogFixturesModel o kolejną właściwość 2) Użyć albo drugiego pliku dla drugiej tabeli (SetFixtureFiles przyjmuje kolekcję nazw plików) lub dopisać dane dla drugiej kolekcji w już istniejącym stosując tą samą konwencję 3) Używać przypisanych (lokalnie! nie w bazie) kluczy głównych i obcych Np. posts: test-post: Id: 1 Author: test Content: test, test, test... comments: test-post-comment: PostId: 1 Content: ha ha ha

Konfiguracja TeamCity Wstęp Aplikacja TeamCity należy do grupy aplikacji ciągłej integracji (Continuous Integration). Ciągła integracja to praktyka programistyczna, która polega na częstym (ciągłym) budowaniu i testowaniu (integrowaniu) wytwarzanego oprogramowania za pomocą odpowiednich narzędzi. Cykl wytwarzania oprogramowania przedstawiony jest poniżej. Trigger (by change) Report Compile Test/Analyse Deploy Trigger wyzwalacz, który rozpoczyna proces integracji; najczęściej stosowanym wyzwalaczem jest przesłanie kodu źródłowego do systemu kontroli wersji (source control system); Compile/Build pierwszym krokiem jest zbudowanie aplikacji z kodu źródłowego; na tym etapie wykrywane są błędy w strukturze kodu, można również ustawić dodatkowe opcje kompilacji (w środowisku developerskim wyłączone ze względu np. na wydłużenie czasu kompilacji), które wyświetlają dodatkowe informacje, jak np. błędy w widokach; Deploy następnym krokiem jest publikacja aplikacji na środowisko testów (dla aplikacji webowej jest to serwer np. IIS);

Test/Analyse najważniejszym krokiem jest uruchomienie testów oraz różnych aplikacji analizujących kod, np. pod kątem zgodności z przyjętymi standardami, i/lub pokrycie testami; Report ostatnim krokiem jest stworzenie raportu z przebiegu całego procesu; w przypadku, kiedy nie zostały spełnione postawione warunki, informacja o błędzie przesyłana jest, np. za pomocą wiadomości e-mail, do odpowiednich osób. Aplikacja TeamCity posiada mechanizmy umożliwiające wykonanie wszystkich wymienionych kroków. Wspiera wiele języków programowania (m.in. Java, C#, PHP, Ruby) oraz różnych narzędzi służących do publikowania aplikacji (m.in. Ant, NAnt, Rake, MSBuild, MSDeploy). Instalacja Aby zainstalować aplikację TeamCity należy: 1. Ściągnąć najnowszą wersję narzędzia TeamCity dla odpowiedniego systemu operacyjnego ze strony http://www.jetbrains.com/teamcity/download/index.html. 2. Zainstalować aplikację (wymagane uprawnienia administratora) z domyślnymi ustawieniami. 3. Jako docelowy port wybrać inny port niż port 80 (np. 8080 albo 9080 zainstalowane w laboratorium). 4. Zapisać domyślne ustawienia dla Build Agenta.

5. Zarówno usługę TeamCity jak i Build Agenta uruchomić jako użytkownik SYSTEM. 6. Uruchomić obydwie usługi zaznaczając odpowiednie pola. 7. Otworzyć stronę zaznaczając pole na ostatnim kroku. Konfiguracja Po uruchomieniu strony aplikacji należy stworzyć nową bazę oraz zaakceptować warunki umowy. Następnie należy stworzyć użytkownika (należy zapamiętać hasło). Adres e-mail jest ważny, ponieważ powiadomienia będą wysyłane na podany adres. Po stworzeniu użytkownika powinna być widoczna strona informująca o braku projektów.

Aby skonfigurować nowy projekt należy: 1. Kliknąć przycisk Create project. 2. Podać nazwę i opis projektu (np. TeamCity test; opis nie jest wymagany). 3. Kliknąć przycisk add a build configuration. 4. Podać nazwę konfiguracji (np. Continuous integration ); pozostałe ustawienia należy zostawić bez zmian. Kliknąć przycisk VCS settings. 5. Kliknąć przycisk Create and attach new VCS root 6. Wybrać Subversion jako typ systemu kontroli wersji. 7. Uzupełnić pola jak na poniższym rysunku. Pozostałe pola zostawić bez zmian.

8. Po przekierowaniu na stronę konfiguracji systemu kontroli wersji kliknąć przycisk Add build step. 9. Wybrać typ runnera Visual Studio (sln). Nazwać krok Build i wypełnić pola jak na poniższym rysunku, pozostałe pozostawić bez zmian. 10. Uruchomić agenta klikają na przycisk Run w prawym górnym rogu aplikacji.

11. Przejść na stronę projektu (lewy górny róg aplikacji). 12. Kliknąć na przycisk Edit Project Settings, a następnie Edit przy kolumnie Build Steps. 13. Przejść na zakładkę Build Step: Visual Studio (sln) i kliknąć przycisk Add build step 14. Wybrać typ NUnit i uzupełnić pola jak na poniższym rysunku i zapisać zmiany. 15. Ponownie uruchomić agenta przyciskiem Run i przejść na zakładkę z projektami.

Jeśli cały proces przebiegł pomyślnie powinien być widoczny ekran z podsumowaniem ostatniego (udanego) builda. Po kliknięciu na build można ujrzeć szczegóły wraz z opisem poszczególnych uruchomionych testów. Zadanie do wykonania: 1) Umieścić wcześniej napisany kod wraz z testami funkcjonalnymi w repozytorium Git i skonfigurować aplikację TeamCity do ich obsługi.