阻止Codeception覆盖Symfony类

时间:2017-12-11 02:22:07

标签: php symfony unit-testing codeception

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

这似乎是Codeception中的设计缺陷。 Symfony类不是一成不变的,但是通过使用Codeception,它们被冻结了,所以当我运行测试时,我使用的Symfony版本不一定匹配。

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

2 个答案:

答案 0 :(得分:0)

我假设您正在使用phar文件或全局编写器安装 本地编写器安装和phar或全局安装之间的版本冲突是一个非常常见的问题。

防止它的唯一方法是将Codeception安装为本地编写器依赖项,然后它将使用与项目相同的Symfony版本。

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

答案 1 :(得分:0)

作为一种解决方法,我创建了一个围绕Codeception的包装器,它在Codeception有机会加载自己的版本之前加载Symfony库。我不喜欢这个解决方案,因为它很乱,而且根本不需要调用不同的脚本而不是Codeception。但是,它确实有效。