我最近将Symfony应用程序升级到Symfony 2.7,同时安装了symfony/phpunit-bridge
。
安装phpunit
后第一次运行symfony/phpunit-bridge
我在运行完整的测试套件后收到了821个弃用通知。
为了不等待完整的测试套件运行,我只运行了一个测试,我看到它正在引发弃用问题。我希望这会很快运行,然后会给我一个或多个弃用通知,以便继续修复。
我第二次运行phpunit
时没有弃用通知。我认为他很奇怪并再次跑phpunit
,对抗完整的测试套件和个别测试。仍然没有弃用通知。
我认为可能有更新版本的phpunit
会有所帮助。我使用4.8.34并决定切换到~5.0。
在下一轮phpunit
,tada,许多弃用通知。事情看起来不错。
在下一轮phpunit
再次运行时,没有弃用通知。
我切换回phpunit
4.8.34和... tada ...弃用通知只是一次。
我只在第一次运行时收到symfony / phpunit-bridge弃用通知。可能会发生什么导致这种情况?
更新
我已经注意到,如果在运行测试之前清除了测试缓存,则会显示弃用通知。
我还注意到通知是指对Symfony\Component\DependencyInjection\Definition::getFactoryService
的调用以及类似的方法。
应用程序中定义的任何服务都不使用工厂。这表明供应商正在做一些奇怪的事情。
我可以随意发出弃用通知,因此会关闭此问题。
答案 0 :(得分:2)
您看到的弃用通知是在容器构建期间触发的。如果已经构建了缓存,则不会再次这样做(即使在dev中,尽管它会花时间查看是否需要重新构建)。
因此,如果您想查看存在哪些弃用,则需要清除缓存 - 或复制输出。
注意:大多数情况下,已弃用的代码是框架的内部代码,因此将在近期版本中进行整理,它只是您自己的代码(或库)可能包含的内容你需要采取行动。