【发布时间】: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/…,或者他们所谓的“模板”。我不知道它们以这种方式实现的具体原因,但一种猜测是部分绕过继承
标签: php phpunit test-suite