Co-authored-by: Łukasz Uznański <l.uznanski@macopedia.com>
5.6 KiB
Running checks & tests
Most code checks and tests can be run via Composer commands.
Table of Contents:
Composer scripts
For most development-related tasks, this extension provides Composer
scripts. If you are working locally, you can run them using composer <scriptname>
.
If you are working with ddev, you can run them with ddev composer <scriptname>
. You do not need to
start or build the containers for this as this happens
automatically.
The code-quality-related Composer scripts make use of the
PHIVE-installed tools. This means that for non-ddev-based development,
you need to run phive install
before you can use the Composer
scripts.
You can run composer
(or ddev composer
) to display a list of all available
Composer commands and scripts. For all custom Composer scripts there are
descriptions in the script-description
section of the composer.json.
Running code checks
You can currently run these code checks on the command line (if
working locally without ddev, omit the ddev
part):
Commands; composer ci:composer:normalize
ddev composer ci:composer:normalize
Checks the composer.json.
Commands; composer ci:json:lint
ddev composer ci:json:lint
Lints the JSON files.
Commands; composer ci:php
ddev composer ci:php
Runs all static checks for the PHP files.
Commands; composer ci:php:cs-fixer
ddev composer ci:php:cs-fixer
Checks the code style with the PHP Coding Standards Fixer (PHP-CS-Fixer).
Commands; composer ci:php:lint
ddev composer ci:php:lint
Lints the PHP files for syntax errors.
Commands; composer ci:php:sniff
ddev composer ci:php:sniff
Checks the code style with PHP_CodeSniffer (PHPCS).
Commands; composer ci:php:stan
ddev composer ci:php:stan
Checks the PHP types using PHPStan.
Commands; composer ci:static
ddev composer ci:static
Runs all static code checks (syntax, style, types).
Commands; composer ci:ts:lint
ddev composer ci:ts:lint
Lints the TypoScript files.
Commands; composer ci:yaml:lint
ddev composer ci:yaml:lint
Lints the YAML files.
Commands; composer fix:php
ddev composer fix:php
Runs all fixers for the PHP code.
Commands; composer fix:php:cs
ddev composer fix:php:cs
Fixes the code style with PHP-CS-Fixer.
Commands; composer fix:php:sniff
ddev composer fix:php:sniff
Fixes the code style with PHP_CodeSniffer.
Commands; composer phpstan:baseline
ddev composer phpstan:baseline
Updates the PHPStan baseline file to match the code.
Running unit and functional tests
You can currently run these tests and coverages on the command line
(if working locally without ddev, omit the ddev
part):
Commands; composer ci:coverage
ddev composer ci:coverage
Runs the ci:coverage script as defined in composer.json.
Commands; composer ci:coverage:functional
ddev composer ci:coverage:functional
Generates the code coverage report for functional tests.
Commands; composer ci:coverage:merge
ddev composer ci:coverage:merge
Merges the code coverage reports for unit and functional tests.
Commands; composer ci:coverage:unit
ddev composer ci:coverage:unit
Generates the code coverage report for unit tests.
Commands; composer ci:tests:functional
ddev composer ci:tests:functional
Runs the functional tests.
Commands; composer ci:tests:unit
ddev composer ci:tests:unit
Runs the unit tests.
Running unit and functional tests in PHPStorm
General setup
- Open
File > Settings > PHP > Test Frameworks
. - (*) Use Composer autoloader.
- Path to script: select .Build/vendor/autoload.php in your project folder.
In the Run configurations, edit the PHPUnit configuration and use these settings so this configuration can serve as a template:
- Directory: use the Tests/Unit directory in your project.
- (*) Use alternative configuration file.
- Use .Build/vendor/typo3/testing-framework/Resources/Core/Build/UnitTests.xml in your project folder.
- Add the following environment variables:
- typo3DatabaseUsername
- typo3DatabasePassword
- typo3DatabaseHost
- typo3DatabaseName
Unit tests configuration
In the Run configurations, copy the PHPUnit configuration and use these settings:
- Directory: use the Tests/Unit directory in your project
Functional tests configuration
In the Run configurations, copy the PHPUnit configuration and use these settings:
- Directory: use the Tests/Functional directory in your project.
- (*) Use alternative configuration file.
- Use .Build/vendor/typo3/testing-framework/Resources/Core/Build/FunctionalTests.xml.