阻止Codeception覆盖Symfony类

问题描述 投票:0回答:2

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

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

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

php symfony unit-testing codeception
2个回答
0
投票

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.