mirror of
https://github.com/FriendsOfTYPO3/tea.git
synced 2024-11-22 23:56:12 +01:00
fc5b861bcd
See c2bb63bead
for further details.
The README.md should mostly only cover the abstract and links.
The composer commands are the core value of this extension. List
all commands in the documentation and copy the descriptions from
the `composer.json`. This lets the global search at docs.typo3.org
find these commands.
Remove superfluous Linters page, which is integrated now in the
Running page.
Use sentence case in page titles in order to conform to the
TYPO3 documentation standards.
The ambiguous :ts: text role has been removed to
not confuse the writer with typescript and typoscript.
Add the common extension destinations to `composer.json`.
(Packagist displays them in a prominent place.)
281 lines
6.8 KiB
ReStructuredText
281 lines
6.8 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _running-checks-and-tests:
|
|
|
|
======================
|
|
Running checks & tests
|
|
======================
|
|
|
|
Most code checks and tests can be run via Composer commands.
|
|
|
|
.. contents:: Table of Contents:
|
|
:backlinks: top
|
|
:class: compact-list
|
|
:depth: 1
|
|
:local:
|
|
|
|
.. _composer-scripts:
|
|
|
|
Composer scripts
|
|
================
|
|
|
|
For most development-related tasks, this extension provides Composer scripts.
|
|
If you are working locally, you can run them using :bash:`composer <scriptname>`.
|
|
If you are working with ddev, you can run them with :bash:`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 :bash:`phive install`
|
|
before you can use the Composer scripts.
|
|
|
|
You can run :bash:`composer` (or :bash:`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:
|
|
|
|
Running code checks
|
|
===================
|
|
|
|
You can currently run these code checks on the command line (if working locally without ddev, omit the :bash:`ddev` part):
|
|
|
|
.. index:: Commands; composer ci
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci
|
|
|
|
Runs all dynamic and static code checks.
|
|
|
|
.. index:: Commands; composer ci:composer:normalize
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:composer:normalize
|
|
|
|
Checks the composer.json.
|
|
|
|
.. index:: Commands; composer ci:json:lint
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:json:lint
|
|
|
|
Lints the JSON files.
|
|
|
|
.. index:: Commands; composer ci:php
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:php
|
|
|
|
Runs all static checks for the PHP files.
|
|
|
|
.. index:: Commands; composer ci:php:copypaste
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:php:copypaste
|
|
|
|
Checks for copy\'n\'pasted PHP code.
|
|
|
|
.. index:: Commands; composer ci:php:cs-fixer
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:php:cs-fixer
|
|
|
|
Checks the code style with the PHP Coding Standards Fixer (PHP-CS-Fixer).
|
|
|
|
.. index:: Commands; composer ci:php:lint
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:php:lint
|
|
|
|
Lints the PHP files for syntax errors.
|
|
|
|
.. index:: Commands; composer ci:php:sniff
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:php:sniff
|
|
|
|
Checks the code style with PHP_CodeSniffer (PHPCS).
|
|
|
|
.. index:: Commands; composer ci:php:stan
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:php:stan
|
|
|
|
Checks the PHP types using PHPStan.
|
|
|
|
.. index:: Commands; composer ci:static
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:static
|
|
|
|
Runs all static code checks (syntax, style, types).
|
|
|
|
.. index:: Commands; composer ci:ts:lint
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:ts:lint
|
|
|
|
Lints the TypoScript files.
|
|
|
|
.. index:: Commands; composer ci:yaml:lint
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:yaml:lint
|
|
|
|
Lints the YAML files.
|
|
|
|
.. index:: Commands; composer fix:php
|
|
.. code-block:: bash
|
|
|
|
ddev composer fix:php
|
|
|
|
Runs all fixers for the PHP code.
|
|
|
|
.. index:: Commands; composer fix:php:cs
|
|
.. code-block:: bash
|
|
|
|
ddev composer fix:php:cs
|
|
|
|
Fixes the code style with PHP-CS-Fixer.
|
|
|
|
.. index:: Commands; composer fix:php:sniff
|
|
.. code-block:: bash
|
|
|
|
ddev composer fix:php:sniff
|
|
|
|
Fixes the code style with PHP_CodeSniffer.
|
|
|
|
.. index:: Commands; composer phpstan:baseline
|
|
.. code-block:: bash
|
|
|
|
ddev composer phpstan:baseline
|
|
|
|
Updates the PHPStan baseline file to match the code.
|
|
|
|
.. _running-unit-and-functional-tests:
|
|
|
|
Running unit and functional tests
|
|
=================================
|
|
|
|
You can currently run these tests and coverages on the command line (if working locally without ddev, omit the :bash:`ddev` part):
|
|
|
|
.. index:: Commands; composer ci:coverage
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:coverage
|
|
|
|
Runs the ci:coverage script as defined in composer.json.
|
|
|
|
.. index:: Commands; composer ci:coverage:functional
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:coverage:functional
|
|
|
|
Generates the code coverage report for functional tests.
|
|
|
|
.. index:: Commands; composer ci:coverage:merge
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:coverage:merge
|
|
|
|
Merges the code coverage reports for unit and functional tests.
|
|
|
|
.. index:: Commands; composer ci:coverage:unit
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:coverage:unit
|
|
|
|
Generates the code coverage report for unit tests.
|
|
|
|
.. index:: Commands; composer ci:dynamic
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:dynamic
|
|
|
|
Runs all PHPUnit tests (unit and functional).
|
|
|
|
.. index:: Commands; composer ci:tests
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:tests
|
|
|
|
Runs all PHPUnit tests (unit and functional).
|
|
|
|
.. index:: Commands; composer ci:tests:functional
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:tests:functional
|
|
|
|
Runs the functional tests.
|
|
|
|
.. index:: Commands; composer ci:tests:unit
|
|
.. code-block:: bash
|
|
|
|
ddev composer ci:tests:unit
|
|
|
|
Runs the unit tests.
|
|
|
|
.. _running-unit-and-functional-tests-in-phpstorm:
|
|
|
|
Running unit and functional tests in PHPStorm
|
|
=============================================
|
|
|
|
General setup
|
|
-------------
|
|
|
|
- Open :guilabel:`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`.
|
|
|
|
.. _running-acceptance-tests:
|
|
|
|
Running acceptance tests
|
|
========================
|
|
|
|
1. Make sure you have Chrome installed on your machine.
|
|
2. `Download the latest version of ChromeDriver <https://chromedriver.chromium.org/downloads>`__.
|
|
3. Unzip it.
|
|
4. Execute `chromedriver --url-base=wd/hub`.
|
|
5. In another terminal, run `.Build/vendor/bin/codecept run`.
|
|
|
|
.. _running-acceptance-tests-in-phpstorm:
|
|
|
|
Running acceptance tests in PhpStorm
|
|
====================================
|
|
|
|
1. Make sure the "Codeception Framework" plugin is activated.
|
|
2. Right-click on `Tests/Acceptance/StarterCest.php`.
|
|
3. Run 'Acceptance (Codeception)'.
|