在特定的PHP版本下使用phpunit运行测试

14

我在我的 Mac 上安装了多个 PHP 版本,并希望针对特定的 PHP 版本(或多个版本)运行单元测试。

这是我拥有的 PHP 版本:

$ php --version
  Output: PHP 5.4.23 ...

$ /Applications/MAMP/bin/php/php5.2.17/bin/php --version
  Output: PHP 5.2.17 ...

我的测试案例看起来像这样:

function test_php_version() {
    $actual = phpversion();
    $expected = '5.2.17';
    $this->assertEquals( $expected, $actual, 'Wrong PHP version!' );
}

运行测试时,我得到了这个响应:

$ phpunit

  Wrong PHP version!
  Failed asserting that two strings are equal.
  --- Expected
  +++ Actual
  @@ @@
  -'5.2.17'
  +'5.4.24'

$ /Applications/MAMP/bin/php/php5.2.17/bin/php phpunit
  Error: Could not open input file: phpunit

我怎样才能使用PHP版本5.2.17运行测试?


更新:

我发现PHPUnit不再支持php5.2.17。因此,我更改了要求,使用支持的php5.3.5来运行单元测试。


PHPUnit怎么安装的? - sectus
我按照这里描述的步骤,通过下载PHAR归档文件来安装phpunit:http://phpunit.de/manual/current/en/installation.html - Philipp
3个回答

14
$ /Applications/MAMP/bin/php/php5.2.17/bin/php path/to/phpunit.phar

创建一个脚本,例如phpunit-using-5.2

#!/bin/sh
set -e

/Applications/MAMP/bin/php/php5.2.17/bin/php path/to/phpunit.phar "$@"
现在您可以运行它:
$ phpunit-using-5.2

或者你也可以创建一个bash别名。


1
这个可以运行,但是phpunit已经不再支持PHP 5.2了...所以我必须稍微修改一下命令,从php5.2.17改为php5.3.5 - Philipp
@Philipp没错,我忘了PHPUnit >= 3.7需要PHP 5.3.3PHPUnit 3.6支持5.2.7,但该版本不再受支持,也没有phar文件。但是如果你需要它,它仍然可以工作。 - Gerard Roche
而且...你刚刚救了我的一天。非常感谢你! - TCB13
1
2017年,Ubuntu 16.04,PHP5.6,你的解决方案仍然有用!我只是稍微做了一些调整:`#!/bin/sh set -e/usr/bin/php5.6 /usr/local/bin/phpunit "$@"` - Borjovsky

11

我有两个版本的php,一个是默认的7.4版本,另一个是旧的7.3版本,因此我可以像这样使用旧版本来测试我的测试用例。

php7.3 ./vendor/bin/phpunit

我运行了这个解决方案的变体,以便在使用Laravel的Plesk上使其正常工作:/opt/plesk/php/7.4/bin/php ./vendor/phpunit/phpunit/phpunit - Tim Rogers
谢谢。这正是我需要的。phpunit是使用PATH中的“php”运行的。这样我就可以指定它应该使用特定版本的php来运行。 - undefined

0
Laravel Vagrant Box Homestead 具有一组功能,例如:
$ php74
or 
$ php56

将您的PHP CLI设置为特定版本 或者您可以自己这样设置
sudo update-alternatives --set php /usr/bin/php7.4
sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接