防止覆盖符号类别的码头



我正在编写一些单元测试,并且我遇到了一个问题,因为CodeCeption使用其自己的内部Symfony类,而不是使用我项目中的实际Symfony类。我没有在我的codeception.ymlunit.suite.yml文件中启用Symfony作为模块。

这似乎是代码感中的设计缺陷。Symfony类并不是石头设置的,而是通过使用编解码,它们会冻结,因此我使用的Symfony版本不一定在进行测试时匹配。

在运行CodeCeption测试时如何使用Symfony自己的类?

我假设您正在使用Phar文件或全局作曲家安装。
本地作曲家安装与PHAR或全局安装之间的版本冲突是一个非常普遍的问题。

防止它作为本地作曲家依赖性的唯一方法是使用与项目相同的Symfony。

安装:composer require --dev codecept/codecept
运行:./vendor/bin/codecept run

作为解决方法,我创建了一个围绕CodeCeption的包装器,该包装器在CodeCeption有机会加载自己的版本之前加载了Symfony库。我不喜欢这个解决方案,因为它凌乱而明显,因为您必须调用另一个脚本而不是编码。但是,它确实有效。

最新更新