如何在多个不同的PHP环境中运行PHPunit测试套件?

时间:2012-11-17 13:32:34

标签: php testing timezone phpunit

我应该在不同的php环境中运行PHPUnit 3.7测试套件:使用不同的php.ini设置,甚至在不同的操作系统环境中。

时,我想确保我的测试套件和底层类不断工作
  • php.ini date.timezone设置各不相同;和/或
  • 操作系统的内部时区不尽相同

如何在PHPUnit和CLI(Linux)中正确设置测试环境?

1 个答案:

答案 0 :(得分:2)

如果你想要的是改变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与另一个时区和不同的ENV

一起使用
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将在测试运行之前设置它。