SlideShare a Scribd company logo
Codeception - jak zacząć pisać
automatyczne testy do Drupala
Michał Potasiak
kariera.droptica.pl
Poznaj nas:
● O firmie
● Ścieżka kariery
● Szkolenia i rozwój
● Benefity
● Praca zdalna
● Biura
● Projekty i klienci
● Po pracy
● Hardware i software
● Typowy dzień pracy
https://kariera.droptica.pl Social Media: #drupaldaypl
Oferty pracy
● Frontend Developer HTML, CSS
○ 5 000 - 8 500 zł netto (B2B)
● Junior PHP Developer
○ 5 000 - 8 500 zł netto (B2B)
● PHP Fullstack Dev - Laravel lub Symfony (Mid/Senior/TechLead)
○ 9 500 - 16 500 zł netto (B2B)
● Drupal Developer (Mid/Senior/TechLead)
○ 10 500 - 17 500 zł netto (B2B)
Agenda
1. Projekt demo - jak wystartować.
2. Co to jest Codeception i dlaczego go wybraliśmy.
3. Konfiguracja Codeception na projekcie.
4. Moduły dla Drupala.
5. Demo
6. Pytania?
Codeception co to takiego?
Codeception jest frameworkiem przeznaczonym do tworzenia testów
jednostkowych, akceptacyjnych i funkcjonalnych. Co prawda opiera się on na
języku PHP, jednak do rozpoczęcia z nim pracy potrzebna jest wiedza wyłącznie
na poziomie podstawowym z uwagi na zestaw własnych komend, które
Codeception oferuje. Testy w Codeception są pisane w stylu BDD (Behavior
Driven Development), czyli zbiorze krótkich historyjek, które mówią nam o tym, jak
powinien zachować się system, kiedy coś konkretnego się wydarzy.
https://codeception.com
Dlaczego Codeception
Krótko o infrastrukturze przykładu
## Run local env with Docksal
* Docksal - (https://docksal.io/)
### Installing
1. Clone the git repository based on https://github.com/andriyun/drupal_codeception_demo
git clone git@github.com:DropticaExamples/drupal_day_codeception_example.git
2. Enter the newly created project directory
cd drupal_day_codeception_example
3. Start docksal environment
fin start
4. Install composer dependencies
fin composer install
5. Install Drupal
fin drush si --db-url=mysql://root:root@db/default
## Run tests
fin test
Composer.json
Pakiety od testów dodajemy do sekcji dev,
raczej nie zaleca się uruchamianie testów na
produkcji.
Docker
Konfiguracja
ogólna
Ogólne dane konfiguracyjne
przechowywane są w pliku
codeception.yml, który powinien
wyglądać mniej więcej tak, jak ten
pokazany tutaj.
Konfiguracja
zestawu testów
Nadpisywanie konfiguracji dla zestawu testów np
acceptance.suite.yml, który powinien
wyglądać mniej więcej tak, jak ten
pokazany tutaj.
Moduły
Mocą Codeception są jego moduły.
Przykładowy test
Przykładowy test - PHPUnit
Polecenia do uruchomienia
Uruchomienie wszystkich testów:
fin exec "php vendor/bin/codecept run --html"
Uruchomienie tylko testów unit:
fin exec "php vendor/bin/codecept run unit --html"
Uruchomienie tylko jednego pliku z testami:
fin exec "php vendor/bin/codecept run acceptance DrupalDemoCest --html"
Uruchomienie tylko jednego testu z opcją debugowania:
fin exec "php vendor/bin/codecept run acceptance DrupalDemoCest:entityTest --html --debug"
Wykonanie testu
Raporty
Drupal Codeception
https://github.com/guncha25/drupal-codeception
Drupal Bootstrap
Pozwala on na używanie funkcji drupalowych w testach
i w innych modułach codeception. Konfiguracja:
Drupal Drush
Pozwala on na używanie drusha w testach.
Konfiguracja:
Drupal Entity
Pozwala on na dodawanie encji drupalowych w testach
oraz łatwe usuwanie treści testowych. Konfiguracja:
Drupal User
Pozwala on na dodawanie testowych użytkowników i
łatwe usuwanie ich treści po wykonanych testach.
Konfiguracja:
Drupal Watchdog
Pozwala on na łatwe sprawdzanie logów podczas testów
codeception.
Konfiguracja:
Drupal Fields Utility
Pozwala w testach lokalizować
pola drupalowe używając
machine name zamiast innych
lokatorów.
Drupal Acceptance
Dostarcza zbiór metod, które pomagają w sprawnym pisaniu testów dla Drupala z
użyciem webdrivera.
Konfiguracja:
Drupal Acceptance - przykłady
Demo
Pytania?
W jakim stylu pisane są testy
akceptacyjne w Codeception?
Dziękujemy za
wasz cenny czas!
Imię i Nazwisko autora
Michał Potasiak, michal.potasiak@droptica.pl
Dane Kontaktowe
WWW.DROPTICA.COM

More Related Content

PDF
Strona w rękach klienta: o czym pamiętać, aby ułatwić pracę edytorom treści [PL]
PDF
Headless CMS w PZPN na bazie Drupala [PL]
PDF
Rest API w Drupalu - działanie i definicja własnych endpointów [PL]
PDF
Migrate API w Drupalu [PL]
PDF
Nowości w drupal 9 i 10 [PL]
PDF
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
PDF
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
PDF
Drupal jako modularny i rozszerzalny CMS [PL]
Strona w rękach klienta: o czym pamiętać, aby ułatwić pracę edytorom treści [PL]
Headless CMS w PZPN na bazie Drupala [PL]
Rest API w Drupalu - działanie i definicja własnych endpointów [PL]
Migrate API w Drupalu [PL]
Nowości w drupal 9 i 10 [PL]
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
Drupal jako modularny i rozszerzalny CMS [PL]

What's hot (19)

PDF
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
PDF
Devel - przegląd możliwości modułu [PL]
PDF
Od zera do Automattica
ODP
WordpUp Lublin #1
PDF
Application in Xamarin.Forms
PDF
Laravel 8.0 - co nowego?
PDF
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
ODP
Niezbędnik administratora - prezentacja Bartosz Sałach
PDF
WordCamp Gdynia 2016
PDF
REvolution, czyli o bardziej obiektowym podejściu w Railsach
PDF
WordUp Warszawa - Wordpress dla początkujących
PDF
Projektowanie i implementacja usług sieciowych
PPTX
3Camp Tech 2016/11/15 - Front-end tooling: package managers
PDF
Automatyzacja utrzymania jakości w środowisku PHP
PPT
Extjs & netzke
PDF
Websockety w PHP
PDF
Swoole w PHP. Czy to ma sens?
PDF
[TestWarez 2017] Architektura frameworka testowego
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Devel - przegląd możliwości modułu [PL]
Od zera do Automattica
WordpUp Lublin #1
Application in Xamarin.Forms
Laravel 8.0 - co nowego?
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
Niezbędnik administratora - prezentacja Bartosz Sałach
WordCamp Gdynia 2016
REvolution, czyli o bardziej obiektowym podejściu w Railsach
WordUp Warszawa - Wordpress dla początkujących
Projektowanie i implementacja usług sieciowych
3Camp Tech 2016/11/15 - Front-end tooling: package managers
Automatyzacja utrzymania jakości w środowisku PHP
Extjs & netzke
Websockety w PHP
Swoole w PHP. Czy to ma sens?
[TestWarez 2017] Architektura frameworka testowego
Ad

More from Droptica (12)

PDF
Business development w praktyce - jak skutecznie sprzedawać software [PL]
PDF
PHPUnit - jak zacząć pisać testy automatyczne [PL]
PDF
Komunikacja w zespole projektowym [PL]
PDF
Od środowiska developerskiego do produkcji [PL]
PDF
Skuteczna komunikacja w projekcie informatycznym [PL]
PDF
Droopler: instalacja z użyciem composer i przykład budowy prostej strony firm...
PDF
Open social - przegląd możliwości dystrybucji [PL]
PDF
Mapy i geolokalizacja w Drupalu [PL]
PDF
Drush - najbardziej przydatne komendy oraz tworzenie własnej prostej komendy ...
PDF
Search API i Faceted Search - podstawowa konfiguracja i przykłady użycia [PL]
PDF
Drupal multisite i domain access - kiedy, jak i dlaczego [PL]
PDF
Mautic - Open Source Marketing Automation [PL]
Business development w praktyce - jak skutecznie sprzedawać software [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]
Komunikacja w zespole projektowym [PL]
Od środowiska developerskiego do produkcji [PL]
Skuteczna komunikacja w projekcie informatycznym [PL]
Droopler: instalacja z użyciem composer i przykład budowy prostej strony firm...
Open social - przegląd możliwości dystrybucji [PL]
Mapy i geolokalizacja w Drupalu [PL]
Drush - najbardziej przydatne komendy oraz tworzenie własnej prostej komendy ...
Search API i Faceted Search - podstawowa konfiguracja i przykłady użycia [PL]
Drupal multisite i domain access - kiedy, jak i dlaczego [PL]
Mautic - Open Source Marketing Automation [PL]
Ad

Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]

  • 1. Codeception - jak zacząć pisać automatyczne testy do Drupala Michał Potasiak
  • 2. kariera.droptica.pl Poznaj nas: ● O firmie ● Ścieżka kariery ● Szkolenia i rozwój ● Benefity ● Praca zdalna ● Biura ● Projekty i klienci ● Po pracy ● Hardware i software ● Typowy dzień pracy https://kariera.droptica.pl Social Media: #drupaldaypl Oferty pracy ● Frontend Developer HTML, CSS ○ 5 000 - 8 500 zł netto (B2B) ● Junior PHP Developer ○ 5 000 - 8 500 zł netto (B2B) ● PHP Fullstack Dev - Laravel lub Symfony (Mid/Senior/TechLead) ○ 9 500 - 16 500 zł netto (B2B) ● Drupal Developer (Mid/Senior/TechLead) ○ 10 500 - 17 500 zł netto (B2B)
  • 3. Agenda 1. Projekt demo - jak wystartować. 2. Co to jest Codeception i dlaczego go wybraliśmy. 3. Konfiguracja Codeception na projekcie. 4. Moduły dla Drupala. 5. Demo 6. Pytania?
  • 4. Codeception co to takiego? Codeception jest frameworkiem przeznaczonym do tworzenia testów jednostkowych, akceptacyjnych i funkcjonalnych. Co prawda opiera się on na języku PHP, jednak do rozpoczęcia z nim pracy potrzebna jest wiedza wyłącznie na poziomie podstawowym z uwagi na zestaw własnych komend, które Codeception oferuje. Testy w Codeception są pisane w stylu BDD (Behavior Driven Development), czyli zbiorze krótkich historyjek, które mówią nam o tym, jak powinien zachować się system, kiedy coś konkretnego się wydarzy. https://codeception.com
  • 6. Krótko o infrastrukturze przykładu ## Run local env with Docksal * Docksal - (https://docksal.io/) ### Installing 1. Clone the git repository based on https://github.com/andriyun/drupal_codeception_demo git clone git@github.com:DropticaExamples/drupal_day_codeception_example.git 2. Enter the newly created project directory cd drupal_day_codeception_example 3. Start docksal environment fin start 4. Install composer dependencies fin composer install 5. Install Drupal fin drush si --db-url=mysql://root:root@db/default ## Run tests fin test
  • 7. Composer.json Pakiety od testów dodajemy do sekcji dev, raczej nie zaleca się uruchamianie testów na produkcji.
  • 9. Konfiguracja ogólna Ogólne dane konfiguracyjne przechowywane są w pliku codeception.yml, który powinien wyglądać mniej więcej tak, jak ten pokazany tutaj.
  • 10. Konfiguracja zestawu testów Nadpisywanie konfiguracji dla zestawu testów np acceptance.suite.yml, który powinien wyglądać mniej więcej tak, jak ten pokazany tutaj.
  • 14. Polecenia do uruchomienia Uruchomienie wszystkich testów: fin exec "php vendor/bin/codecept run --html" Uruchomienie tylko testów unit: fin exec "php vendor/bin/codecept run unit --html" Uruchomienie tylko jednego pliku z testami: fin exec "php vendor/bin/codecept run acceptance DrupalDemoCest --html" Uruchomienie tylko jednego testu z opcją debugowania: fin exec "php vendor/bin/codecept run acceptance DrupalDemoCest:entityTest --html --debug"
  • 18. Drupal Bootstrap Pozwala on na używanie funkcji drupalowych w testach i w innych modułach codeception. Konfiguracja:
  • 19. Drupal Drush Pozwala on na używanie drusha w testach. Konfiguracja:
  • 20. Drupal Entity Pozwala on na dodawanie encji drupalowych w testach oraz łatwe usuwanie treści testowych. Konfiguracja:
  • 21. Drupal User Pozwala on na dodawanie testowych użytkowników i łatwe usuwanie ich treści po wykonanych testach. Konfiguracja:
  • 22. Drupal Watchdog Pozwala on na łatwe sprawdzanie logów podczas testów codeception. Konfiguracja:
  • 23. Drupal Fields Utility Pozwala w testach lokalizować pola drupalowe używając machine name zamiast innych lokatorów.
  • 24. Drupal Acceptance Dostarcza zbiór metod, które pomagają w sprawnym pisaniu testów dla Drupala z użyciem webdrivera. Konfiguracja:
  • 25. Drupal Acceptance - przykłady
  • 26. Demo
  • 28. W jakim stylu pisane są testy akceptacyjne w Codeception?
  • 29. Dziękujemy za wasz cenny czas! Imię i Nazwisko autora Michał Potasiak, michal.potasiak@droptica.pl Dane Kontaktowe WWW.DROPTICA.COM