vectorface / dunit
此包已被弃用,不再维护。没有建议的替代包。
在docker的帮助下测试代码的多个PHP版本
v2.1.0
2015-03-31 19:30 UTC
Requires (Dev)
- phpunit/phpunit: ~4.3
- symfony/console: ~2.5
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_PHPVERSION
和 DUNIT_DOCKERIMAGE
。这些变量已合并为变量 DUNIT_IMAGES
。
类似地,标志 -p
已被 -i
替换。