Development
Running the test suite, the static analysis and the coding standards check, on every supported TYPO3 and PHP version.
Testing
cd typo3conf/ext/aim
# Unit tests
Build/Scripts/runTests.sh -s unit
# Functional tests, SQLite by default
Build/Scripts/runTests.sh -s functional
# Functional tests against MariaDB, the second engine CI runs
Build/Scripts/runTests.sh -s functional -d mariadb
# Static analysis, coding standards, syntax check
Build/Scripts/runTests.sh -s phpstan
Build/Scripts/runTests.sh -s cgl
Build/Scripts/runTests.sh -s lint
# With specific PHP version
Build/Scripts/runTests.sh -s unit -p 8.3
# Specific test
Build/Scripts/runTests.sh -s unit -- --filter BudgetService
Run the functional tests on both engines before proposing a change that touches the database. SQLite accepts a double-quoted unknown column as a string literal instead of erroring, so a query against a column that does not exist passes there and fails on every other DBMS.
PHPStan is analysed against the installed core, so phpstan-baseline.neon is
specific to the TYPO3 version in .Build. New findings belong in the code, not
in the baseline.
Part of the AiM documentation, generated from Documentation/Development.md. Found something wrong? Open an issue.