正确安装方式是composer require codeception/codeception --dev,必须立即执行codecept bootstrap初始化并手动配置各suite的yml文件启用模块,否则无法运行。

直接用 composer require codeception/codeception --dev 就能装好,不需要额外配置 PHP 扩展或修改全局环境——但装完不初始化、不配模块,它根本跑不起来。
安装命令本身没坑,坑在没加 --dev
Codeception 是纯开发期依赖,运行时完全不需要。如果漏掉 --dev:
- 会进
require而非require-dev,导致线上部署时 Composer 错误地把测试框架也装进去 - 后续执行
composer install --no-dev时,codecept命令直接消失 - CI 流水线里容易因环境差异突然报
command not found: codecept
正确写法只有一条:composer require codeception/codeception --dev。别用 global,别用 phar,别手动下载。
codecept bootstrap 不是可选项,是必须立刻执行的初始化动作
只装包不运行 codecept bootstrap,你会面对一个空荡荡的项目,连 tests/ 目录都没有,更别说 codeception.yml 和 _bootstrap.php。这个命令干三件事:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 创建标准目录结构:
tests/、tests/_support/、tests/_output/ - 生成顶层配置文件
codeception.yml,它是所有套件的总开关 - 生成默认套件配置(如
tests/functional.suite.yml),但这些初始配置默认禁用所有模块
执行后务必检查 codeception.yml 里 paths.tests 是否指向你预期的目录——有些旧版模板会写成 tests/functional,而实际你要的是 tests/ 下统一管理。
模块启用必须手动编辑 suite 配置,不是装完就自动可用
比如你想用数据库断言,装了 codeception/module-db 后,$I->seeInDatabase() 依然会报错。因为模块没被加载。必须打开对应 suite 的 yml 文件(如 tests/functional.suite.yml),显式写入:
modules:
enabled:
- Db:
dsn: 'sqlite:/tmp/test.db'
user: ''
password: ''
dump: 'tests/_data/dump.sql'
常见疏漏点:
-
Db模块需要提前建好测试库或提供dump文件,否则codecept run会卡在连接阶段 -
WebDriver模块依赖 Selenium/ChromeDriver,但配置里只写- WebDriver不够,还得补url和browser - 多个 suite(acceptance / functional / unit)各自有独立的 yml,改错文件等于白改
真正麻烦的从来不是“怎么装”,而是装完之后那一堆 yml 文件里藏了多少个要手敲的 config 块和路径拼写错误——尤其当项目已有自定义命名空间或非标准目录结构时,actor 类名、namespace、path 三者稍有不一致,codecept build 就会静默失败,连报错都不给你看。

















