gpt4 book ai didi

symfony - 如何强制 symfony 的 phpunit 桥使用 phpunit 6.5 而不是 5.7?

转载 作者:行者123 更新时间:2023-12-04 19:27:50 26 4
gpt4 key购买 nike

问题

我正在使用 Symfony 3.3.10PHP 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。

不要告诉我放入 .bashrc

我已经知道我可以将 env-var 设置到我的 bash 脚本中,等等,等等,但这不是一个可以接受的解决方案,原因有两个:
  • 我维护了 50 多个存储库。在所有 shell 中始终设置此设置可能会对其他项目产生副作用。
  • 如果我让另一个开发人员在这个 repo 上工作,他应该可以做 git clone + composer install + vendor/bin/simple-phpunit它应该正确测试,没有额外的手动步骤。



  • 是否可以告诉项目(可能是 composer.json 中的某些内容)进行一些奇特的设置,以便 symfony 的 phpunit 桥接器被迫使用 phpunit 6.x (例如 6.5 )超过 5.7 的版本全部 安装 repo 和 不是 取决于 repo 之外的任何全局性?

    最佳答案

    从 4.1 版开始,您可以在 phpunit.xml 中配置它/phpunit.xml.dist :

    <php>
    <env name="SYMFONY_PHPUNIT_VERSION" value="6.5" />
    </php>

    关于symfony - 如何强制 symfony 的 phpunit 桥使用 phpunit 6.5 而不是 5.7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50661914/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com