tuutti/drupal-test-runner
Composer 安装命令:
composer require tuutti/drupal-test-runner
包简介
Tool to run Drupal tests
README 文档
README
Provides a set of tools to make testing Drupal easier.
Requirements
- make (GNU)
- composer
- php
- composer
Installation
$ composer global require tuutti/drupal-test-runner ^1.0
This will create drupal-tr executable that works as a wrapper for our make commands. You can either call it directly
from composer's binary folder or add composer's global bin dir to your $PATH variable: PATH="$PATH:$HOME/.composer/vendor/bin".
Usage
Available installers:
Setup Drupal
drupal-tr to install Drupal with selected installer (INSTALLER_TYPE)
Run tests
drupal-tr run-tests to run tests with selected test runner (TEST_RUNNER)
Utility tools
drupal-tr run-drush-server to start a drush server listening on DRUPAL_BASE_URL.
Configuration
| Variable name | Default value | Required | Description |
|---|---|---|---|
DRUPAL_DB_URL |
Y | The database url, for example mysql://drupal:drupal@localhost/drupal |
|
INSTALLER_TYPE |
contrib |
N | The test type (contrib or composer-project) |
TEST_RUNNER |
phpunit |
N | The test runner (phpunit or core) |
PHP_BINARY |
$(which php) |
N | Path to PHP binary |
DRUSH |
$(which drush), fallbacks to vendor/bin/drush |
N | Path to drush binary. If Drush is not found it will be installed with composer |
DRUPAL_BASE_URL |
Fallbacks to SIMPLETEST_BASE_URL if set |
N | The base url (required for functional tests) |
SIMPLETEST_BASE_URL |
N | Same as DRUPAL_BASE_URL |
|
TEST_RUNNER_ROOT |
Defaults to DRUPAL_ROOT |
N |
Contrib installer
Use contrib when testing something that is not packaged with Drupal core, like Drupal modules or themes. Core version is determined by DRUPAL_CORE_VERSION variable and will be installed to given DRUPAL_ROOT using DRUPAL_INSTALL_PROFILE installation profile.
Your DRUPAL_MODULE_PATH (git root by default) will be added to composer.json's repositories automatically and installed with composer require drupal/$DRUPAL_MODULE_NAME. For this to work your package MUST have a composer.json file containing type and name values starting with drupal, for example:
{
"name": "drupal/your_module",
"type": "drupal-module"
}
See composer/installers for available types.
NOTE: DRUPAL_ROOT cannot be inside the DRUPAL_MODULE_PATH folder.
Contrib installer configuration
| Variable name | Default value | Required | Description |
|---|---|---|---|
DRUPAL_MODULE_NAME |
Y | The module/theme name | |
DRUPAL_INSTALL_PROFILE |
minimal | N | The install profile used to install Drupal |
DRUPAL_ROOT |
git root/../drupal |
N | The path where Drupal will be installed |
DRUPAL_CORE_VERSION |
9.0.x | N | The core version |
DRUPAL_MODULE_PATH |
git root |
N | Path to the module |
DRUPAL_TEST_GROUPS |
$DRUPAL_MODULE_NAME |
The test groups. A comma separated list of group names (from @group annotation) |
Contrib installer Github actions example
.github/workflows/ci.yml:
on: [push] name: CI env: MYSQL_ROOT_PASSWORD: drupal SIMPLETEST_DB: "mysql://drupal:drupal@mariadb:3306/drupal" SIMPLETEST_BASE_URL: "http://127.0.0.1:8080" DRUPAL_MODULE_NAME: "your_module" DRUPAL_CORE_VERSION: 9.0.x jobs: test-contrib: runs-on: ubuntu-latest strategy: fail-fast: true matrix: php-version: ['7.4'] container: image: ghcr.io/tuutti/drupal-php-docker:${{ matrix.php-version }} services: mariadb: image: mariadb:10.5 env: MYSQL_USER: drupal MYSQL_PASSWORD: drupal MYSQL_DATABASE: drupal MYSQL_ROOT_PASSWORD: drupal ports: - 3306:3306 steps: - uses: actions/checkout@v2 with: fetch-depth: 1 - name: Set variables run: | echo "$HOME/.config/composer/vendor/bin" >> $GITHUB_PATH - name: Setup Drupal test runner run: | composer global require tuutti/drupal-test-runner ^1.0 - name: Setup Drupal run: drupal-tr - name: Run tests run: TEST_RUNNER=core drupal-tr run-tests
Contrib installer Gitlab ci example
variables: DRUPAL_MODULE_NAME: your_module SIMPLETEST_BASE_URL: http://127.0.0.1:8080 DRUPAL_CORE_VERSION: 8.9.x DRUPAL_INSTALL_PROFILE: minimal MYSQL_DATABASE: drupal MYSQL_ROOT_PASSWORD: drupal SIMPLETEST_DB: mysql://root:drupal@mariadb/drupal TEST_RUNNER: core before_script: - export PATH=$HOME/.composer/vendor/bin:$PATH - composer global require tuutti/drupal-test-runner ^1.0 - drupal-tr - drupal-tr run-drush-server & services: - mariadb:latest test:7.3: image: registry.gitlab.com/tuutti/drupal-php-docker:7.3 script: - drupal-tr run-tests
Composer-project installer
Use composer-project installer to test Drupal sites that can be installed with composer. For example drupal-composer/drupal-project.
Installs Drupal using DRUPAL_INSTALL_PROFILE or existing config when EXISTING_CONFIG is set to true.
Composer-project installer Github actions example
on: [push] name: CI env: SIMPLETEST_DB: "mysql://drupal:drupal@db:3306/drupal" SIMPLETEST_BASE_URL: "http://127.0.0.1:8888" EXISTING_CONFIG: true INSTALLER_TYPE: composer-project jobs: tests: runs-on: ubuntu-latest strategy: fail-fast: true matrix: php-version: ['7.4'] container: image: ghcr.io/tuutti/drupal-php-docker:${{ matrix.php-version }} steps: - uses: actions/checkout@v2 with: fetch-depth: 1 - name: Set variables run: | echo "$HOME/.config/composer/vendor/bin" >> $GITHUB_PATH - name: Setup drupal run: | composer global require tuutti/drupal-test-runner drupal-tr - name: Run PHPUnit tests run: | drupal-tr run-drush-server & drupal-tr run-tests
Configuration
| Variable name | Default value | Required | Description |
|---|---|---|---|
DRUPAL_INSTALL_PROFILE |
minimal | N | The install profile used to install Drupal |
EXISTING_CONFIG |
false | N | Installs Drupal using existing configuration |
DRUPAL_ROOT |
git root |
N | The git root |
DRUPAL_TEST_GROUPS |
The test groups. A comma separated list of group names (from @group annotation) |
Test runners
phpunit
Uses vendor/bin/phpunit to run tests (default). Attempts to read configuration file from PHPUNIT_CONFIG_FILE.
| Variable name | Default value | Required | Description |
|---|---|---|---|
PHPUNIT_CONFIG_FILE |
git root/phpunit.xml.dist |
N | Path to phpunit config file |
DRUPAL_TESTSUITES |
N | Limit tests to certain types, like unit or kernel |
|
DRUPAL_TEST_GROUPS |
N | The test groups. A comma separated list of group names (from @group annotation) |
core
Uses core's core/scripts/run-tests.sh to run tests.
Set TEST_RUNNER=core to use this.
| Variable name | Default value | Required | Description |
|---|---|---|---|
DRUPAL_TESTSUITES |
N | Limit tests to certain types, like PHPUnit-Kernel |
|
DRUPAL_TEST_GROUPS |
Y | The test groups. A comma separated list of group names (from @group annotation) |
tuutti/drupal-test-runner 适用场景与选型建议
tuutti/drupal-test-runner 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.05k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 11 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 tuutti/drupal-test-runner 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tuutti/drupal-test-runner 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 1.05k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2020-11-14