我应该在不同的PHP环境中运行PHPUnit 3.7测试套件:使用不同的php.ini设置,甚至在不同的操作系统环境中。我想确保我的测试套件和基础类在以下情况下持续工作
- php.ini date.timezone 设置各不相同;和/或
- 操作系统的内部时区各不相同
如何在PHPUnit和CLI(Linux)中正确设置测试环境?
如果你只想改变 php.ini 设置,也许还有 OS/env vars,我建议编写一些小的 bash 脚本包装器(或使用你选择的构建工具)来做等效的事情。
使用不同时区的 PHP 5.3:
/path/to/php-5.3 -d date.timezone=America/New_york /usr/bin/phpunit
将 PHP 5.4 与另一个时区和不同的环境一起使用
export TZ=Europa/Berlin
/path/to/php-5.4 -d date.timezone=Aemerica/San_Franciso /usr/bin/phpunit
如果您使用该功能,此方法也适用于process_isolation
因为 PHPUnit 将能够找出使用了什么 PHP 二进制文件,但您可能会遇到"-d"参数的问题。在这种情况下,不要将它们传递给 php 二进制文件,而是传递给 phpunit。(phpunit -d date.timezone=foo
)。然后,PHPUnit 将负责在测试运行之前对其进行设置。