我在Symfony 3.3.10
PHP 7.0.25-0ubuntu0.16.04.1
默认情况下,此组合使用phpunit 5.x
。
但我想强制phpunit 6.x
。
当我第一次调用vendor/bin/simple-phpunit
时,会按照源代码中的说明安装phpunit/phpunit
版本5.7.*
:
https://github.com/symfony/phpunit-bridge/blob/v3.4.11/bin/simple-phpunit
第18-27行:
if (PHP_VERSION_ID >= 70200) {
// PHPUnit 6 is required for PHP 7.2+
$PHPUNIT_VERSION = getenv('SYMFONY_PHPUNIT_VERSION') ?: '6.5';
} elseif (PHP_VERSION_ID >= 50600) {
// PHPUnit 4 does not support PHP 7
$PHPUNIT_VERSION = getenv('SYMFONY_PHPUNIT_VERSION') ?: '5.7';
} else {
// PHPUnit 5.1 requires PHP 5.6+
$PHPUNIT_VERSION = '4.8';
}
由于我的PHP版本为7.0
,因此它选择了phpunit版本5.7
。
我看到我可能会强迫"如果我在环境变量中设置它,那么与phpunit 6.5
一起使用的桥梁:
在shell中,我这样做:
rm -Rf vendor
export SYMFONY_PHPUNIT_VERSION=6.5
composer install
vendor/bin/simple-phpunit
现在我正确地得到:PHPUnit 6.5.8
相反,如果我注销并再次登录,它将失去env-var并且下一次调用vendor/bin/simple-phpunit
并强制安装5.7。
我已经知道我可以将env-var设置为我的bash脚本和blah,blah,blah,但由于两个原因,这不是一个可接受的解决方案:
git clone
+ composer install
+ vendor/bin/simple-phpunit
并且应该正确测试,无需额外的手动步骤是否有可能告诉项目(可能是composer.json
中的某些内容)有一些奇特的设置,因此symfony的phpunit网桥被迫使用phpunit 6.x
(例如6.5
}} 5.7
版本的所有安装的repo和不,具体取决于repo外部的全局内容?
答案 0 :(得分:1)
从版本4.1开始,您可以在phpunit.xml
/ phpunit.xml.dist
:
<php>
<env name="SYMFONY_PHPUNIT_VERSION" value="6.5" />
</php>