Tests
Er zijn twee soorten tests in de stek, unit tests en functionele tests. Unit tests testen bijvoorbeeld een functie. Functionele tests testen of pagina’s bezoekbaar zijn en of klikken op linkjes werkt zoals verwacht.
Veel tests maken gebruik van de database, zorg hier voor dat de Fixtures geladen zijn.
Chromedriver is te downloaden van https://chromedriver.chromium.org/
Tests runnen
- Voeg
APP_ENV=testtoe aan je.env.localbestand. -
Maak een
.env.test.localbestand aan.DATABASE_URL=mysql://root@127.0.0.1:3306/csrdelft_test PANTHER_CHROME_BINARY="C:\Program Files\Google\Chrome\Application\chrome.exe" PANTHER_CHROME_DRIVER_BINARY="<path naar chromedriver>\chromedriver.exe" PANTHER_NO_HEADLESS=true PANTHER_WEB_SERVER_DIR=<path naar project>\csrdelft.nl\htdocs -
Maak een db in te test environment
shell script # Maak de database php bin/console doctrine:database:create # Maak de tabellen php bin/console doctrine:migrations:migrate # Vul de tabellen met testdata. Als de database al bestaat is allen het volgende commando genoeg om de data te verversen. php bin/console doctrine:fixtures:load - Run
php bin/phpunitom alle tests te runnen. PhpStorm kan ook losse tests uitvoeren.
Vergeet niet om je APP_ENV weer terug te zetten om naar de dev instellingen te gaan.
Panther (Browser) tests
Panther is gebasseerd op php-webdriver en dit maakt weer gebruik van Selenium.
Tests maken
In de map tests kun je nieuwe tests toevoegen. Kijk vooral af bij andere tests hoe je het moet aanpakken. We gebruiken phpunit voor de tests.
Test Base Classes
Er zijn een aantal base classes die interessant zijn voor tests
PHPUnit\Framework\TestCaseVoor simpele tests die alleen functies testen.Symfony\Bundle\FrameworkBundle\Test\KernelTestCaseVoor tests die onderdelen van de stek testen en daar bijvoorbeeld database functionaliteit nodig hebbenSymfony\Bundle\FrameworkBundle\Test\WebTestCaseVoor tests die requests uitvoeren op de stek en controleren of het resultaat klopt.