This library provides some helper functions for Codeception tests within TYPO3 extensions. In addition, an application entrypoint modifier extension for coverage collection within acceptance tests is distributed.
composer require --dev eliashaeussler/typo3-codeception-helper
A Codeception extension that aims to ease the integration effort
when collecting code coverage with codeception/c3
.
It replaces an existing entrypoint (e.g. typo3/index.php
) with
a modified entrypoint that includes the distributed c3.php
file.
Enable this extension in your codeception.yml
file:
# codeception.yml
extensions:
enabled:
- EliasHaeussler\Typo3CodeceptionHelper\Codeception\Extension\ApplicationEntrypointModifier:
entrypoints:
- web-dir: .Build/web
main-entrypoint: index.php
app-entrypoint: app.php
- web-dir: .Build/web/typo3
main-entrypoint: index.php
app-entrypoint: app.php
For each entrypoint, the following config must be provided:
Config name | Description | Default value |
---|---|---|
web-dir |
Relative path from project root to directory that contains the main entrypoint | โ |
main-entrypoint |
Name of the entrypoint to replace (the file being accessed by the web server) | index.php |
app-entrypoint |
Name of the original relocated entrypoint (the renamed main entrypoint) | app.php |
Given the following directory structure:
.Build
โโโ web
โโโ index.php # main entrypoint provided by framework/application
Once the extension is enabled and properly configured, the following directory structure exists after the test suite is started:
.Build
โโโ web
โโโ app.php # contains the original contents from index.php
โโโ index.php # generated entrypoint that includes c3.php and app.php
Source:
Codeception\Module\Backend
A Codeception module that allows to perform actions within TYPO3 backend. It can for example be used to log into the TYPO3 backend.
Note
This module requires the WebDriver
module to be installed and enabled.
Enable this module in your codeception.yml
file:
# codeception.yml
suites:
Acceptance:
actor: AcceptanceTester
modules:
enabled:
- EliasHaeussler\Typo3CodeceptionHelper\Codeception\Module\Backend
login($username, $password): void
Perform backend login for the given user. The user is identified by the given username and is authenticated by the given password.
Example:
$I->login('admin', 'password');
loginAs($username): void
Perform backend login for the given user. The user is identified by the given username which must be configured in the codeception module config (see Configure backend users).
Example:
$I->loginAs('admin');
openModule($identifier): void
Open a backend module by clicking on the module link. The module link is identified by a given node identifier. Note that the identifier differs between TYPO3 versions (see example below).
Example:
// TYPO3 11
$I->openModule('#web_list');
// TYPO3 12
$I->openModule('[data-modulemenu-identifier="web_list"]');
Note
Backend users are not automatically created by this module. You need to take care of that by your own, e.g. by importing static database fixtures before tests are executed.
In order to use the loginAs()
method, existing backend users
must be configured in the module config section:
suites:
Acceptance:
actor: AcceptanceTester
modules:
enabled:
- - EliasHaeussler\Typo3CodeceptionHelper\Codeception\Module\Backend
+ - EliasHaeussler\Typo3CodeceptionHelper\Codeception\Module\Backend:
+ userCredentials:
+ admin: password
+ editor: password
Please have a look at CONTRIBUTING.md
.
This project is licensed under GNU General Public License 2.0 (or later).