我有一个如下所示的事件订阅者:
class MySubscriber implements EventSubscriberInterface {
public function __construct(
private MyService $service,) {
}
public function getSubscribedEvents(): array {
return [
Events::postUpdate,
Events::postPersist
];
}
}
没有这个事件订阅者类,我的测试运行良好,但启用这个,他们甚至没有运行。在测试之前,我正在创建数据库模式、加载固定装置和清除缓存,所有这些都工作正常,在测试执行时,我得到下面列出的错误。
这是一个非常奇怪的问题,因为它在本地 PHPUnit 测试期间没有出现,但在我的 CI/CD 管道中它失败并显示以下消息:
PHPUnit 9.6.5 by Sebastian Bergmann and contributors.
There is already an active transaction
一个可能的原因是 DAMA doctrine test bundle,但我一直无法弄清楚如何调试它。
....
<extensions>
<extension class="DAMA\DoctrineTestBundle\PHPUnit\PHPUnitExtension"/>
</extensions>
我该如何解决这个问题?
我正在使用容器在 CI/CD 管道中使用 PHPUnit 运行 PHP 集成测试。这个事件订阅者类在某种程度上是个问题,没有它,一切正常。