eliashaeussler/typo3-codeception-helper

为 TYPO3 扩展内的 Codeception 测试提供辅助函数

1.1.1 2024-01-17 12:32 UTC

This package is auto-updated.

Last update: 2024-09-22 04:47:28 UTC


README

TYPO3 Codeception Helper

Coverage Maintainability CGL Tests Supported PHP Versions

这个库为 TYPO3 扩展内的 Codeception 测试提供了一些辅助函数。此外,还提供了一个用于在验收测试中进行代码覆盖率收集的应用程序入口点修改扩展。

🔥 安装

Packagist Packagist Downloads

composer require --dev eliashaeussler/typo3-codeception-helper

⚡ 使用

ApplicationEntrypointModifier 扩展

源代码: Codeception\Extension\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\Module\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(或更新版) 许可。