tuutti/drupal-test-runner

运行 Drupal 测试的工具

1.1.6 2020-11-16 12:54 UTC

This package is auto-updated.

Last update: 2024-09-16 22:21:55 UTC


README

Tests

提供了一套工具,使测试 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 开头的 typename 值的 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 以使用此功能。