phpunit 8 及更高版本中设置套件的问题

Posted

技术标签:

【中文标题】phpunit 8 及更高版本中设置套件的问题【英文标题】:Problem with setup suite in phpunit 8 and later 【发布时间】:2022-01-04 16:23:44 【问题描述】:

我有一个包,其中包含许多按套件组织的测试。我想将phpunit兼容性从7升级到8及以上,但是我有一个问题。 对于每个套件,我都有一个 setUp 方法,它创建数据库并使用要用于套件内测试的数据填充它。从 phpunit 8 开始,似乎不再调用这个 setUp 方法,因此所有测试都失败了。在我看来,这在文档中没有被引用,有没有人遇到过同样的问题并且知道如何解决它?

【问题讨论】:

我刚查了最新的PHPUnit,9.5,那些方法还在。 不,此方法在最新版本 github.com/sebastianbergmann/phpunit/blob/master/src/Framework/… 中不存在,并且不会在“运行”中调用 我相信您的问题是更改了 setUp 方法的签名,该方法现在使用 php7 启用的返回语法。显然你需要用 public function setUp():void ... 替换 public function setUp() ... 不,这不是问题,如果您将版本 7 的 TestSuite 与版本 8 和 9 进行比较,您可以看到 setUp 和 tearDown 方法仍然不存在并且运行方法是改变而不是使用它。 这些方法似乎是虚拟的:github.com/sebastianbergmann/phpunit/blob/…,或者他们所谓的“模板”。我不知道它们以这种方式实现的具体原因,但一种猜测是部分绕过继承 【参考方案1】:

TestSuite 不是 PHPUnit 用户应该知道的,更不用说使用了。

【讨论】:

以上是关于phpunit 8 及更高版本中设置套件的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 WSL-2 和 Docker 在 PhpStorm 中设置 PHPUnit:无法解析 PHPUnit 版本输出:无法打开输入文件

在 UITabBar 中设置背景图像的问题

如何在 django 中设置会话永不过期

SASS-LOADER 版本 8.0.0 及更高版本

在 SF3.4 及更高版本中运行 Symfony DIC 烟雾测试

iOS 8 及更高版本中的更多选项卡图标颜色