cap-rel / dolibarr-module-tests
Shared PHPUnit harness (HTTP and integration) and generic tests for Dolibarr modules, development dependency only
Package info
inligit.fr/cap-rel/dolibarr/dolibarr-module-tests
pkg:composer/cap-rel/dolibarr-module-tests
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- ext-tokenizer: *
- phpunit/phpunit: ^9.6
Requires (Dev)
- cap-rel/dolibarr-integration-sqlite: 18.0.x-dev
- phpstan/phpstan: ^1.10
Suggests
- ext-pcntl: Stops the test server when a run is interrupted (Ctrl+C, cancelled CI job)
- ext-pdo_sqlite: Required by the HTTP and integration harness (working copy of the database), checked when they start
- ext-posix: Tells the current user for the private temp dir and checks the run lock holder
- ext-sqlite3: Required by the SQLite driver of the Dolibarr the HTTP and integration harness run on, checked when they start
- cap-rel/dolibarr-integration-sqlite: Dolibarr with SQLite the HTTP and integration harness run on (require it in the module, 18.0.x-dev)
Provides
None
Conflicts
None
Replaces
None
README
Harnais de test PHPUnit et tests génériques communs aux modules Dolibarr de
CAP-REL, en un seul exemplaire versionné : harnais HTTP (php -S sur un
Dolibarr SQLite, routeur des pages, shim de main.inc.php), harnais
d'intégration (Dolibarr réel chargé, module activé par son init()), et tests
génériques (fichiers de langue, conventions du code, règles DoliStore,
descripteur, activation, config.php).
Dépendance de développement uniquement (require-dev) : rien de ce paquet ne
part dans le zip d'un module.
Prérequis
- PHP 7.4 à 8.x, PHPUnit 9.6, extensions
curl,json,tokenizer(pcntletposixrecommandées) ; - extensions
pdo_sqliteetsqlite3pour les harnais HTTP et intégration : suggérées et non requises par Composer, pour qu'une CI limitée à PHPStan ou aux tests unitaires s'installe sans elles ; leur absence arrête ces harnais avec un message qui la nomme ; cap-rel/dolibarr-integration-sqlitedans le module (18.0.x-dev, seule branche publiée aujourd'hui).
Utilisation
Guide complet : docs/adoption.md. Règles vérifiées : docs/rules.md.
"require-dev": {
"cap-rel/dolibarr-module-tests": "^1.0"
}
// test/module-tests.json
{
"module": "mymodule",
"class": "modMyModule",
"port_env": "MYMODULE_TEST_BACKEND_PORT",
"port_default": 8800
}
// test/phpunit/unit/LangFilesTest.php
final class LangFilesTest extends \CapRel\DolibarrModuleTests\Generic\LangFilesTestCase {}
Tests du paquet
composer install
vendor/bin/phpunit -c phpunit.xml
vendor/bin/phpstan analyse -c phpstan.neon
La suite fixtures lance les vraies suites PHPUnit (unitaire, intégration,
HTTP) de deux modules factices : tests/fixtures/good respecte toutes les
règles et passe tout ; tests/fixtures/bad les enfreint toutes et chaque
test de règle doit y échouer. Le serveur HTTP de ces tests prend le port
DOLIBARR_MODULE_TESTS_TEST_BACKEND_PORT, à défaut 9095 (9096 pour le second
serveur).
Licence
GPL-3.0-or-later.