Testen

PHP Testen

Chamilo gebruikt PHPUnit voor backend-testen.

Testdatabase Instellen

Tests vereisen een speciale database. Maak een .env.test.local aan met de inloggegevens van je testdatabase:

DATABASE_HOST='127.0.0.1'
DATABASE_PORT='3306'
DATABASE_NAME='chamilo_test'
DATABASE_USER='root'
DATABASE_PASSWORD='root'

Initialiseer vervolgens de testdatabase:

php bin/console --env=test cache:clear
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:create
php bin/console --env=test doctrine:fixtures:load --no-interaction

Om te resetten na schema-aanpassingen:

php bin/console --env=test doctrine:schema:update --force --complete

Tests Uitvoeren

Testlocatie

Tests bevinden zich in de map tests/:

Testtypen

  • Unit/Integratietests — PHPUnit-tests in CoreBundle/ en CourseBundle/; de meeste maken gebruik van een echte database (via dama/doctrine-test-bundle)

  • Functionele (API) tests — Breid AbstractApiTest uit en test HTTP-eindpunten van begin tot eind

  • Behat-tests — Acceptatietests op browserniveau in tests/behat/features/ (zie hieronder)

Behat (End-to-End) Tests

Chamilo heeft een Behat-testsuite voor acceptatietesten op browserniveau. Hiervoor is een draaiende Chamilo-instantie, Chrome en ChromeDriver vereist.

Configureer de basis-URL in tests/behat/behat.yml voordat je de tests uitvoert.

Frontend Controles

PHP Codekwaliteit

Chamilo gebruikt ECS (Easy Coding Standard), PHPStan en Psalm voor codekwaliteit. Composer-snelkoppelingen zijn beschikbaar voor elk:

Let op: er is geen php-cs-fixer in dit project. ECS (symplify/easy-coding-standard) is het hulpmiddel voor codestijl.

Continue Integratie

Pull requests worden automatisch gecontroleerd door vier GitHub Actions-workflows:

Workflow
Wat het uitvoert

phpunit.yml

PHPUnit-testsuite

format_code.yml

ECS codestijlcontrole

php_analysis.yml

Psalm, Doctrine schema-validatie, beveiligingscontrole

behat.yml

Behat end-to-end tests

Laatst bijgewerkt

Was dit nuttig?