如何升级symfony/phpunit-bridge以使用PHPUnit 7?

3
我正在使用包含symfony/phpunit-bridge 4.2的test-pack和Symfony 4.2。
PHPUnit的默认版本是6.5,但我想将其升级到7.5。
在Symfony PHPUnit Bridger文档中,它说:
将SYMFONY_PHPUNIT_VERSION环境变量设置为例如5.5,以将PHPUnit的基本版本更改为5.5而不是默认值5.3。
也可以在phpunit.xml.dist文件中设置此环境变量。
我尝试了三种方法:
1. 在项目根目录下的phpunit.xml/phpunit.xml.dist文件中设置SYMFONY_PHPUNIT_VERSION。
2. 在.env.test文件中设置SYMFONY_PHPUNIT_VERSION。
3. 将SYMFONY_PHPUNIT_VERSION设置为7.5在/bin/phpunit文件中。
然后,我删除了/bin/.phpunit文件夹并运行/bin/phpunit命令重新安装PHPUnit。
只有第三种方式可以升级PHPUnit版本。
我做错了什么?
最佳设置SYMFONY_PHPUNIT_VERSION的位置在哪里?
1个回答

3

我遇到了同样的问题,偶然看到了你的帖子,感谢你提供的环境变量提示。

在我的情况下,我将SYMFONY_PHPUNIT_VERSION放入我的docker-compose.yml文件中,作为容器环境定义的一部分。不需要删除bin/.phpunit文件夹,因为重新运行bin/phpunit会自动安装所需版本。

如果您没有使用docker,您可以尝试以下方法:

SYMFONY_PHPUNIT_VERSION=7.5 bin/phpunit

或者

export SYMFONY_PHPUNIT_VERSION=7.5
bin/phpunit


我认为这与我提到的第三种方法是相同的。只是想知道是否有其他不使用Docker的方法,以及为什么另外两种方法不起作用。感谢您的帮助。 - yifei3212
基本上是的,但修改第三方文件从来不是一个好的做法。在你的情况下,我会创建一个makefile,用你想要的版本调用phpunit。 - Michael Petri
是的,我知道你的意思。bin/phpunit不在vendor文件夹中,它是由phpunit-bridge创建的,所以我认为更改它是可以的,但我仍然认为最好将所有配置放到一个文件(如.env或.env.test)中。 - yifei3212
FYI。发现了这些支持票据:https://github.com/symfony/symfony/issues/28726,https://github.com/symfony/recipes/issues/476 - yifei3212
尽管 docker-compose 环境起到了解决方案的作用,但我仍然认为这是一个 bug,并在 Symfony 的网站上报告了这个问题:https://github.com/symfony/symfony/issues/31816。 - Rein Baarsma

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