Un ensemble d'outils permettant d'automatiser la phase d'assurance qualité et d'appliquer les standards de codage dans les projets TYPO3.
Assurez-vous que ces variables d’environnement sont définies :
typo3DatabaseUsernametypo3DatabasePasswordtypo3DatabaseHosttypo3DatabaseName
composer req toumoro/tm-qa-tools --devEnsuite, ajoutez ces scripts dans le fichier composer.json de votre projet :
"scripts": {
"qa-tools-scripts": [
"chmod +x vendor/toumoro/tm-qa-tools/services/configure.sh",
"vendor/toumoro/tm-qa-tools/services/configure.sh"
],
"ci:php": [
"@ci:php:cs",
"@ci:php:lint",
"@ci:php:stan",
"@ci:php:unit"
],
"fix:php": [
"@fix:php:rector",
"@fix:php:cs"
],
"ci:setup": [
"@qa-tools-scripts",
],
"ci:php:cs": "php-cs-fixer fix --config=build/php-cs-fixer/php-cs-fixer.php -v --dry-run --using-cache no --diff",
"ci:php:lint": "parallel-lint --show-deprecated --exclude vendor ./packages",
"ci:php:stan": "phpstan analyse --ansi --no-progress --configuration=build/phpstan/phpstan.neon",
"ci:lint:typoscript": "typoscript-lint ./packages --ansi -n --fail-on-warnings",
"ci:lint:xml": "xmllint packages --pattern '*.xlf,*.svg' --ansi",
"ci:lint:yaml": "yaml-lint packages/**/Configuration/*.yaml",
"ci:php:unit": "phpunit -c ./build/phpunit/UnitTests.xml",
"fix:php:cs": "php-cs-fixer fix --config=build/php-cs-fixer/php-cs-fixer.php",
"fix:php:rector": [
"rector process --clear-cache"
]
}Puis mettez à jour le fichier .gitignore :
.php-cs-fixer.cache
/build/phpunit/.phpunit.result.cachecomposer ci:setupcomposer ci:lint:typoscriptcomposer fix:phpcomposer ci:lint:typoscriptchmod +x ./build/Scripts/runTests.sh
# Lancer tous les tests
./build/scripts/runTests.sh -p 8.2
# Lancer un test spécifique
./build/scripts/runTests.sh -p 8.2 -- --filter PageActionsTestLes tests Playwright sont disponibles sous le domaine :
playwright-${YOUR_DOMAIN}
Pour les tests fonctionnels, vous pouvez ajouter un chemin personnalisé vers un fichier de fixtures et le configurer via l’option d’extension fixturesPath.
Pour les tests Playwright, vous pouvez ajouter vos tests personnalisés dans une extension existante ou dans une nouvelle.
Il est essentiel d’ajouter le chemin du dossier de tests à votre fichier docker-compose-cloud.yml afin de garantir leur bonne exécution.
A set of tools to automate quality checks and enforce coding standards for TYPO3 projects.
Make sure these environment variables are set:
typo3DatabaseUsernametypo3DatabasePasswordtypo3DatabaseHosttypo3DatabaseName
composer req toumoro/tm-qa-tools --devThen add these scripts to your project's composer.json file:
"scripts": {
"qa-tools-scripts": [
"chmod +x vendor/toumoro/tm-qa-tools/services/configure.sh",
"vendor/toumoro/tm-qa-tools/services/configure.sh"
],
"ci:php": [
"@ci:php:cs",
"@ci:php:lint",
"@ci:php:stan",
"@ci:php:unit"
],
"fix:php": [
"@fix:php:rector",
"@fix:php:cs"
],
"ci:setup": [
"@qa-tools-scripts",
],
"ci:php:cs": "php-cs-fixer fix --config=build/php-cs-fixer/php-cs-fixer.php -v --dry-run --using-cache no --diff",
"ci:php:lint": "parallel-lint --show-deprecated --exclude vendor ./packages",
"ci:php:stan": "phpstan analyse --ansi --no-progress --configuration=build/phpstan/phpstan.neon",
"ci:lint:typoscript": "typoscript-lint ./packages --ansi -n --fail-on-warnings",
"ci:lint:xml": "xmllint packages --pattern '*.xlf,*.svg' --ansi",
"ci:lint:yaml": "yaml-lint packages/**/Configuration/*.yaml",
"ci:php:unit": "phpunit -c ./build/phpunit/UnitTests.xml",
"fix:php:cs": "php-cs-fixer fix --config=build/php-cs-fixer/php-cs-fixer.php",
"fix:php:rector": [
"rector process --clear-cache"
]
}Then update .gitignore file:
# ....
.php-cs-fixer.cache
/build/phpunit/.phpunit.result.cachecomposer ci:setupcomposer ci:lint:typoscriptcomposer fix:phpcomposer ci:lint:typoscriptRun all tests using the command:
chmod +x ./build/Scripts/runTests.sh
# Run all
./build/scripts/runTests.sh -p 8.2 -d mysql
# Run a specific test
./build/scripts/runTests.sh -p 8.2 -d mysql -- --filter PageActionsTestPlaywright tests are available under playwright-${YOUR_DOMAIN}.
For functional tests, you can add a custom fixtures file path and then configure it under the extension configuration setting fixturesPath.
For Playwright tests, you can add your custom tests in an existing extension or in a new one.
It's essential to add the tests folder path to your docker-compose-cloud.yml file to ensure they are properly executed.