SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Droptica
 
Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]Droptica
 
Application in Xamarin.Forms
Application in Xamarin.FormsApplication in Xamarin.Forms
Application in Xamarin.FormsMaciej Kuchcik
 
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowymPSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowymKrzysztof Łęcki
 
Niezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz SałachNiezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz SałachBartosz Sałach
 
REvolution, czyli o bardziej obiektowym podejściu w Railsach
REvolution, czyli o bardziej obiektowym podejściu w RailsachREvolution, czyli o bardziej obiektowym podejściu w Railsach
REvolution, czyli o bardziej obiektowym podejściu w RailsachThe Software House
 
WordUp Warszawa - Wordpress dla początkujących
WordUp Warszawa - Wordpress dla początkującychWordUp Warszawa - Wordpress dla początkujących
WordUp Warszawa - Wordpress dla początkującychTomasz Dziuda
 
3Camp Tech 2016/11/15 - Front-end tooling: package managers
3Camp Tech 2016/11/15 - Front-end tooling: package managers3Camp Tech 2016/11/15 - Front-end tooling: package managers
3Camp Tech 2016/11/15 - Front-end tooling: package managersMichał Michalczuk
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPLaravel Poland MeetUp
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 

Was ist angesagt? (19)

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

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

Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHPXdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP3camp
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Grzegorz Bartman
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiMikołaj Olszewski
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieGrzegorz Godlewski
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Laravel Poland MeetUp
 
PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]Droptica
 
Ciągłe Dostarcznie - Wprowadzenie
Ciągłe Dostarcznie - WprowadzenieCiągłe Dostarcznie - Wprowadzenie
Ciągłe Dostarcznie - WprowadzenieArtur Radosz
 
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) Laravel Poland MeetUp
 
DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8Grzegorz Bartman
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPPiotr Horzycki
 
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiPodstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiGrzegorz Bartman
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznieSages
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Tomasz Dziuda
 
Od codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiOd codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiMichał Bartyzel
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Dariusz Kacban
 

Ähnlich wie Codeception - jak zacząć pisać automatyczne testy do Drupala [PL] (20)

Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHPXdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGi
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
 
university day 1
university day 1university day 1
university day 1
 
PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]PHPUnit - jak zacząć pisać testy automatyczne [PL]
PHPUnit - jak zacząć pisać testy automatyczne [PL]
 
Ciągłe Dostarcznie - Wprowadzenie
Ciągłe Dostarcznie - WprowadzenieCiągłe Dostarcznie - Wprowadzenie
Ciągłe Dostarcznie - Wprowadzenie
 
Olga Żądło - Robot Framework
Olga Żądło - Robot FrameworkOlga Żądło - Robot Framework
Olga Żądło - Robot Framework
 
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
 
DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Wprowadzenie do PHPUnit
Wprowadzenie do PHPUnitWprowadzenie do PHPUnit
Wprowadzenie do PHPUnit
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiPodstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznie
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014
 
Grok Artykul
Grok ArtykulGrok Artykul
Grok Artykul
 
Od codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiOd codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacji
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
 

Mehr von Droptica

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

Mehr von Droptica (11)

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

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