tuutti / drupal-test-runner
运行 Drupal 测试的工具
README
提供了一套工具,使测试 Drupal 更容易。
需求
- make (GNU)
- composer
- php
- composer
安装
$ composer global require tuutti/drupal-test-runner ^1.0
这将创建一个名为 drupal-tr 的可执行文件,作为我们 make 命令的包装器。您可以直接从 composer 的二进制文件夹中调用它,或将 composer 的全局 bin 目录添加到您的 $PATH 变量:PATH="$PATH:$HOME/.composer/vendor/bin"。
用法
可用的安装程序
设置 Drupal
drupal-tr 用于使用选择的安装程序(INSTALLER_TYPE)安装 Drupal。
运行测试
使用 drupal-tr run-tests 运行测试,使用选择的测试运行程序(TEST_RUNNER)。
实用工具
使用 drupal-tr run-drush-server 启动一个监听在 DRUPAL_BASE_URL 的 drush 服务器。
配置
贡献安装程序
当测试的内容没有与 Drupal 核心一起打包时(如 Drupal 模块或主题),请使用 contrib。核心版本由 DRUPAL_CORE_VERSION 变量确定,并使用 DRUPAL_INSTALL_PROFILE 安装配置文件安装到给定的 DRUPAL_ROOT。
您的 DRUPAL_MODULE_PATH(默认为 git 根目录)将自动添加到 composer.json 的 repositories 中,并使用 composer require drupal/$DRUPAL_MODULE_NAME 安装。为了使此功能正常工作,您的包必须包含一个包含以 drupal 开头的 type 和 name 值的 composer.json 文件,例如
{
"name": "drupal/your_module",
"type": "drupal-module"
}
有关可用类型的详细信息,请参阅 composer/installers。
注意: DRUPAL_ROOT 不能在 DRUPAL_MODULE_PATH 文件夹内部。
贡献安装程序配置
贡献安装程序 Github actions 示例
.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
贡献安装程序 Gitlab ci 示例
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 安装程序
使用 composer-project 安装程序测试可以使用 composer 安装的 Drupal 网站。例如 drupal-composer/drupal-project。
当 EXISTING_CONFIG 设置为 true 时,使用 DRUPAL_INSTALL_PROFILE 或现有配置安装 Drupal。
Composer-project 安装程序 Github actions 示例
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
配置
测试运行程序
phpunit
使用 vendor/bin/phpunit 运行测试(默认)。尝试从 PHPUNIT_CONFIG_FILE 读取配置文件。
核心
使用核心的 core/scripts/run-tests.sh 运行测试。
设置 TEST_RUNNER=core 以使用此功能。