vectorface/dunit

此包已被弃用,不再维护。没有建议的替代包。

在docker的帮助下测试代码的多个PHP版本

v2.1.0 2015-03-31 19:30 UTC

This package is not auto-updated.

Last update: 2023-01-11 15:04:59 UTC


README

DUnit (dee-unit) 通过允许您使用多个 Docker 容器来测试您的PHP代码,使您的测试工作变得更简单。这允许您对代码进行不同版本的PHP或不同PHP配置的测试。默认情况下,DUnit可以对整个代码库进行语法检查,并运行PHPUnit 测试套件。

默认容器

DUnit包括以下PHP版本的预配置容器

  • PHP 5.2(将vectorface/php5.2添加到您的.dunitconfig
  • PHP 5.3
  • PHP 5.4
  • PHP 5.5
  • PHP 5.6
  • PHP 7.0-dev(将vectorface/php-nightly添加到您的dunitconfig
  • HHVM稳定版
  • HHVM夜间版(将vectorface/hhvm-nightly添加到您的.dunitconfig

并安装以下本地扩展

  • apc(PHP 5.5及更高版本上的apcu)
  • curl
  • gd
  • intl(PHP 5.3及更高版本)
  • json
  • mcrypt

安装

只需运行以下composer命令

$ composer require vectorface/dunit --dev

强烈建议将示例配置复制到项目根目录,以控制dunit命令的默认行为。

$ cp ./vendor/vectorface/dunit/dunitconfig.example ./.dunitconfig

然后编辑文件.dunitconfig以适应您的喜好。

用法

# run PHP syntax checks and your test suite against all supported version of PHP
$ ./vendor/bin/dunit

# show the help documentation
$ ./vendor/bin/dunit -h

# specify a custom configuration file
$ ./vendor/bin/dunit -c "path/.dunitconf"

# explictly specify which containers to use
$ ./vendor/bin/dunit -i "vectorface/php5.3 vectorface/php5.4"

配置

有三种方法可以自定义dunit命令

  • 环境变量
  • 本地配置文件
  • 脚本标志。

环境变量

以下环境变量可以设置来配置dunit。

  • DUNIT_IMAGES - 一个如"vectorface/php5.3 vectorface/php5.4"的字符串,表示要运行的镜像列表。
  • DUNIT_PHPSYNTAX - 一个true/false标志,指示dunit是否应该运行语法检查。
  • DUNIT_PHPSYNTAXCOMMAND - 一个字符串,表示dunit应该运行的确切命令来执行语法检查。如果DUNIT_PHPSYNTAX设置为false,则忽略此变量。请注意,该命令在Docker容器内部运行,而不是在您的宿主机器上。
  • DUNIT_PHPUNIT - 一个true/false标志,指示dunit是否应该运行PHPUnit。
  • DUNIT_PHPUNITCOMMAND - 一个字符串,表示dunit应该执行单元测试套件的精确命令。如果DUNIT_PHPUNIT设置为false,则忽略此变量。请注意,该命令在Docker容器内部运行,而不是在您的宿主机器上。

示例

运行针对PHP 5.3和5.4版本的dunit,并跳过语法检查

$ DUNIT_IMAGES="vectorface/php5.3 vectorface/php5.4" DUNIT_PHPSYNTAX=false ./vendor/bin/dunit

本地配置文件 (.dunitconfig)

dunit 脚本会检查是否存在名为 .dunitconfig 的本地文件。可以从 composer 包中复制示例配置文件。

$ cp ./vendor/vectorface/dunit/dunitconfig.example ./.dunitconfig

配置文件中指定的环境变量将覆盖直接传递给脚本的任何变量。

脚本标志

dunit 脚本还可以接受多个标志。这些标志将始终覆盖冲突的环境变量设置。

  • -h - 显示帮助信息。
  • -c ./path/to/config - dunit 将使用提供的路径中的配置,而不是在本地文件夹中查找 .dunitconfig
  • -i "image1 image2" - dunit 将仅针对指定的镜像运行。
  • --version - 显示当前版本。
  • -p - 拉取所有 Docker 镜像的最新版本。

示例

为 PHP 的 5.3 和 5.4 版本运行 dunit

$ ./vendor/bin/dunit -i "vectorface/php5.3 vectorface/php5.4"

使用自定义配置文件运行 dunit

$ ./vendor/bin/dunit -c ../dunit.global.conf

从 1.x 升级到 2.x

从版本 1 到版本 2,.dunitconfig 的语法已经完全改变,因此需要您将新的配置文件复制到相应位置。

$ cp ./vendor/vectorface/dunit/dunitconfig.example ./.dunitconfig

并相应调整您的配置。

请注意,DUnit 已不再支持环境变量 DUNIT_PHPVERSIONDUNIT_DOCKERIMAGE。这些变量已合并为变量 DUNIT_IMAGES

类似地,标志 -p 已被 -i 替换。