Skip to content

Files

Latest commit

 Cannot retrieve latest commit at this time.

History

History
117 lines (78 loc) · 3.79 KB

start-testing.md

File metadata and controls

117 lines (78 loc) · 3.79 KB

Uruchamianie testów

Zaawansowana aplikacji Yii 2 korzysta z Codeception jako głównego frameworka testowego. Kilka przygotowanych przykładowych testów można znaleźć w folderze tests w frontend, backend i common. Poniżej opisana procedura zakłada, że aplikacja została zainicjowana dla środowiska dev. W przypadku testowania środowiska Production należy ręcznie skopiować pliki yii_test i yii_test.bat z folderu environments/dev do głównego folderu projektu. Proces testowania wymaga dodatkowej bazy danych, która będzie czyszczona pomiędzy poszczególnymi testami. Stwórz bazę danych MySQL o nazwie yii2advanced_test (zgodnie z konfigurację pliku common/config/test.php) i uruchom:

./yii_test migrate

Zbuduj pakiet testowy:

vendor/bin/codecept build

Teraz wszystkie przykładowe testy można uruchomić za pomocą:

vendor/bin/codecept run

Rezultat będzie podobny do poniższego:

Zalecane jest ciągłe aktualizowanie swoich testów. W przypadku, gdy klasa lub funkcjonalność jest usuwana, odpowiadające jej testy również powinny być skasowane.
Testy powinno się przeprowadzać regularnie, a najlepiej jest przygotować do tego celu serwer Ciągłej Integracji.

Przeczytaj artykuł Yii 2 Framework Case Study, aby zapoznać się z konfiguracją Codeception dla swojej aplikacji.

Część Common

Testy dla klas folderu common umieszczone są w common/tests. W tym szablonie przygotowane zostały jedynie testy jednostkowe.
Uruchomisz je za pomocą:

vendor/bin/codecept run -- -c common

Opcja -c pozwala na ustawienie ścieżki do pliku konfiguracyjnego codeception.yml.

Testy jednostkowe pakietu (umieszczone w common/tests/unit) mogą korzystać z funkcjonalności frameworka Yii: Yii::$app, Active Record, fixtures, itp. Jest to możliwe dzięki modułowi Yii2 dodanemu w konfiguracji common/tests/unit.suite.yml (moduł można wyłączyć, aby przeprowadzać testy w izolacji od głównego frameworka).

Część Frontend

Pakiet testowy części Frontend składa się z testów jednostkowych, funkcjonalnych i akceptacyjnych.
Uruchomisz je za pomocą:

vendor/bin/codecept run -- -c frontend

Opis poszczególnych pakietów:

  • unit ⇒ klasy związane jedynie z aplikacją front-end.
  • functional ⇒ wewnętrzne żądania i odpowiedzi aplikacji (bez serwera web).
  • acceptance ⇒ aplikacja web, interfejs użytkownika i interakcje z użyciem JavaScript w prawdziwej przeglądarce.

Domyślnie testy akceptacyjne są wyłączone. Poniżej znajdziesz instrukcję ich uruchamiania:

Uruchamianie testów akceptacyjnych

Aby przeprowadzić testy akceptacyjne, wykonaj następujące kroki:

  1. Zmień nazwę pliku frontend/tests/acceptance.suite.yml.example na frontend/tests/acceptance.suite.yml, aby włączyć konfigurację pakietu

  2. Zamień pakiet codeception/base w pliku composer.json na codeception/codeception, aby zainstalować pełną wersję Codeception

  3. Zaktualizuj zależności używając Composera

    composer update  
    
  4. Wygeneruj automatycznie nowe pomocnicze klasy dla testów akceptacyjnych:

    vendor/bin/codecept build -- -c frontend
    
  5. Pobierz Serwer Selenium i uruchom go:

    java -jar ~/selenium-server-standalone-x.xx.x.jar
    
  6. Uruchom serwer web:

    php -S 127.0.0.1:8080 -t frontend/web
    
  7. Teraz już możesz uruchomić wszystkie dostępne testy

    vendor/bin/codecept run acceptance -- -c frontend
    

Część Backend

Aplikacja back-end zawiera testy jednostkowe i funkcjonalne. Uruchomisz je za pomocą:

vendor/bin/codecept run -- -c backend