mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-09-19 18:16:13 +02:00
tea/Documentation/TestingFramework.rst
Alexander Nitsche fc5b861bcd
[TASK] Update docs (#404)
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.)
2022-04-12 19:00:11 +02:00

2 KiB

Testing framework

Extensions usually need to support two LTS versions of TYPO3 in parallel, assuming that they should support all currently supported TYPO3 LTS versions. To achieve this, there are two different approaches, which also affect the choice of a testing framework for unit and functional tests.

Table of Contents:

Approach 1: One branch for many TYPO3 LTS versions

With this approach, there is one main branch that gets new features. It needs to support two TYPO3 LTS versions in parallel.

The downside is that this slightly increases code complexity as version-dependent code switches might be necessary. The upside is that there is only one branch to maintain, which makes adding new features (and all other code changes) a lot less of a hassle.

The Nimut testing framework can support multiple TYPO3 versions at a time, and it provides version-independent abstractions for testing, making it the perfect companion for this approach.

This is the approach that we have chosen for this extension as we do not want to maintain two branches in parallel.

Approach 2: One branch per TYPO3 LTS version

With this approach, there are two main branches that get new features in parallel. Each branch supports exactly one TYPO3 LTS version.

The upside is that this slightly decreases code complexity as version-dependent code switches are not necessary. The downside is that there are two branches to maintain, which makes adding new features (and all other code changes) more of a hassle.

For this approach, the TYPO3 testing framework - which supports only one TYPO3 LTS version at a time - will work just fine.