Search by

cap-rel / dolibarr-module-tests

Eric-CAP-REL

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

Statistics

Installs: 70

Dependents: 0

Suggesters: 0

v1.0.4 2026-10-16 16:10 UTC

This package is auto-updated.

Last update: 2026-10-16 16:10:50 UTC


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 (pcntl et posix recommandées) ;
  • extensions pdo_sqlite et sqlite3 pour 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-sqlite dans 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.