eliashaeussler / typo3-codeception-helper
为 TYPO3 扩展内的 Codeception 测试提供辅助函数
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- composer-runtime-api: ^2.1
- codeception/c3: ^2.8
- codeception/codeception: ^4.1.11 || ^5.0
- symfony/filesystem: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- armin/editorconfig-cli: ^1.8 || ^2.0
- codeception/module-webdriver: ^4.0
- eliashaeussler/php-cs-fixer-config: ^2.0
- eliashaeussler/phpstan-config: ^2.0
- eliashaeussler/rector-config: ^2.0
- ergebnis/composer-normalize: ^2.30
- phpstan/extension-installer: ^1.2
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^10.2
- symfony/finder: ^5.4 || ^6.0 || ^7.0
README
TYPO3 Codeception Helper
这个库为 TYPO3 扩展内的 Codeception 测试提供了一些辅助函数。此外,还提供了一个用于在验收测试中进行代码覆盖率收集的应用程序入口点修改扩展。
🔥 安装
composer require --dev eliashaeussler/typo3-codeception-helper
⚡ 使用
ApplicationEntrypointModifier
扩展
这是一个 Codeception 扩展,旨在在收集代码覆盖率时简化与 codeception/c3
的集成工作。它使用修改过的入口点(例如 typo3/index.php
)替换现有的入口点,其中包含分发的 c3.php
文件。
在您的 codeception.yml
文件中启用此扩展
# 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
对于每个入口点,必须提供以下配置
示例
给定以下目录结构
.Build
└── web
└── index.php # main entrypoint provided by framework/application
一旦扩展启用并正确配置,测试套件启动后,将存在以下目录结构
.Build
└── web
├── app.php # contains the original contents from index.php
└── index.php # generated entrypoint that includes c3.php and app.php
Backend
模块
这是一个 Codeception 模块,允许在 TYPO3 后端执行操作。例如,可以用来登录到 TYPO3 后端。
注意
此模块需要安装并启用 WebDriver
模块。
在您的 codeception.yml
文件中启用此模块
# codeception.yml suites: Acceptance: actor: AcceptanceTester modules: enabled: - EliasHaeussler\Typo3CodeceptionHelper\Codeception\Module\Backend
可用方法
login($username, $password): void
为给定用户执行后端登录。用户通过给定的用户名识别,并通过给定的密码进行认证。
示例
$I->login('admin', 'password');
loginAs($username): void
为给定用户执行后端登录。用户通过给定的用户名识别,该用户名必须在模块配置中配置(请参阅 配置后端用户)。
示例
$I->loginAs('admin');
openModule($identifier): void
通过点击模块链接打开后端模块。模块链接通过给定的节点标识符识别。请注意,标识符在不同版本的 TYPO3 中可能不同(请参阅下面的示例)。
示例
// TYPO3 11 $I->openModule('#web_list'); // TYPO3 12 $I->openModule('[data-modulemenu-identifier="web_list"]');
配置后端用户
注意
此模块不会自动创建后端用户。您需要自行负责此事,例如,在测试执行之前通过 导入静态数据库固定数据。
为了使用 loginAs()
方法,必须已在模块配置部分配置现有后端用户
suites: Acceptance: actor: AcceptanceTester modules: enabled: - - EliasHaeussler\Typo3CodeceptionHelper\Codeception\Module\Backend + - EliasHaeussler\Typo3CodeceptionHelper\Codeception\Module\Backend: + userCredentials: + admin: password + editor: password
🧑💻 贡献
请参阅 CONTRIBUTING.md
。
⭐ 许可证
本项目采用 GNU 通用公共许可证 2.0(或更新版) 许可。