我正在编写一些单元测试,我遇到了一个问题,因为Codeception正在使用自己的内部Symfony类,而不是使用我项目中的实际Symfony类。我没有在我的codeception.yml
或unit.suite.yml
文件中启用Symfony作为模块。
这似乎是Codeception中的设计缺陷。 Symfony类不是一成不变的,但是通过使用Codeception,它们被冻结了,所以当我运行测试时,我使用的Symfony版本不一定匹配。
如何在运行Codeception测试时使用Symfony自己的类?
答案 0 :(得分:0)
我假设您正在使用phar文件或全局编写器安装 本地编写器安装和phar或全局安装之间的版本冲突是一个非常常见的问题。
防止它的唯一方法是将Codeception安装为本地编写器依赖项,然后它将使用与项目相同的Symfony版本。
安装:composer require --dev codecept/codecept
。
运行:./vendor/bin/codecept run
。
答案 1 :(得分:0)
作为一种解决方法,我创建了一个围绕Codeception的包装器,它在Codeception有机会加载自己的版本之前加载Symfony库。我不喜欢这个解决方案,因为它很乱,而且根本不需要调用不同的脚本而不是Codeception。但是,它确实有效。