如何强制symfony';s phpunit桥是否使用phpunit 6.5而不是5.7? 问题

如何强制symfony';s phpunit桥是否使用phpunit 6.5而不是5.7? 问题,symfony,phpunit,composer-php,version,bridge,Symfony,Phpunit,Composer Php,Version,Bridge,我在php7.0.25-0ubuntu0.16.04.1上使用Symfony 3.3.10 默认情况下,此组合与phpunit 5.x一起使用 但是我想强制phpunit6.x 上下文 当我第一次调用vendor/bin/simple phpunit时,它会安装phpunit/phpunit版本5.7.*,如这里的源代码所述: 第18-27行: if (PHP_VERSION_ID >= 70200) { // PHPUnit 6 is required for PHP 7.2+

我在
php7.0.25-0ubuntu0.16.04.1上使用
Symfony 3.3.10

默认情况下,此组合与phpunit 5.x一起使用

但是我想强制
phpunit6.x

上下文 当我第一次调用
vendor/bin/simple phpunit
时,它会安装
phpunit/phpunit
版本
5.7.*
,如这里的源代码所述:

第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
现在我正确地得到:
phpunit6.5.8

相反,如果我注销并再次登录,它会释放env var和对
vendor/bin/simple phpunit的下一次调用,并强制安装5.7

别叫我把它放进 我已经知道我可以将env var设置到bash脚本中,诸如此类,但这不是一个可接受的解决方案,原因有两个:

  • 我维护了50多个存储库。在所有shell中始终使用此集可能会对其他项目产生副作用
  • 如果我让另一个开发人员来处理这个repo,他应该能够执行git clone
  • +
    composer安装
    +
    vendor/bin/simple phpunit
    ,并且应该能够正确地进行测试,而不需要额外的手动步骤 问题:
    是否可以告诉项目(可能是
    composer.json
    中的某个内容)进行一些奇特的设置,以便symfony的phpunit桥被迫使用
    phpunit 6.x
    (例如
    6.5
    )在
    5.7
    版本中,所有回购和安装取决于回购外部的任何全局性内容?

    自4.1版以来,您可以在
    phpunit.xml
    /
    phpunit.xml.dist
    中配置此功能:

    <php>
        <env name="SYMFONY_PHPUNIT_VERSION" value="6.5" />
    </php>
    
    
    
    symfony的4.1版?或phpuunit本身的4.1版?symfony/phpunit桥接器的4.1版
    -啊,好的。。。我懂了。我现在需要在我的作曲器中使用
    “symfony/phpunit桥”:“^3.0”
    。如果我升级了专业,是否有打破一切的风险?我是说。。。桥3是为symfony 3设计的,桥4是为symfony 4设计的吗?或者symfony 3可以安全地使用bridge 4运行而不需要太多的中断?我不知道BC中断,但是symfony 3.4.10在其
    require dev
    中有
    symfony/phpunit bridge:~3.4 | ~4.0
    ,所以我想它应该可以正常工作。我使用
    bin/phpunit
    ,它由
    symfony/phpunit桥:4.2.4
    安装。我尝试了您的方法将phpunit版本设置为7.5,但它不起作用。唯一的工作方法是在
    putenv('SYMFONY\u phpunit\u version=7.5')
    行的
    bin/phpunit
    中设置版本。你知道为什么会这样吗?