使用特定的php版本在phpunit中运行测试

使用特定的php版本在phpunit中运行测试,php,macos,phpunit,version,Php,Macos,Phpunit,Version,我在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();

我在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运行单元测试

$ /Applications/MAMP/bin/php/php5.2.17/bin/php path/to/phpunit.phar
创建脚本,例如
phpunit-using-5.2
现在您可以运行它了:

$ phpunit-using-5.2

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

我有两个版本的php,默认值是7.4,旧版本是7.3,所以我可以用像这样的旧版本测试我的测试用例

php7.3 ./vendor/bin/phpunit

如何安装phpunit?我通过下载PHAR归档文件安装了phpunit,如下所述:这是可行的,但实际上phpunit不再与PHP5.2一起运行。。。因此,我不得不将命令从
php5.2.17
稍微更改为
php5.3.5
@Philipp是的,我忘了。但该版本不再受支持,也没有phar支持。但是如果你需要它,它会起作用的。而且。。。你刚刚救了我一天。非常感谢你!2017年,Ubuntu 16.04,PHP5.6,你的解决方案仍然有用!我只是稍微修改了一下:
#/bin/sh set-e/usr/bin/php5.6/usr/local/bin/phpunit“$@”
我运行了此解决方案的一个变体,以使其与Laravel一起在Plesk上工作:
/opt/Plesk/php/7.4/bin/php./vendor/phpunit/phpunit
php7.3 ./vendor/bin/phpunit