Yii2中如何在重命名或自定义测试文件夹中运行Codeception测试
解决方案
Codeception 的测试套件和配置文件是一一绑定的,新增/修改自定义测试目录无法运行的核心原因是没有对应调整套件配置,具体修改步骤如下:
1. 配置匹配逻辑说明
你查看的Bootstrap.php代码里读取的$settings参数,全部来自对应套件的.suite.yml配置文件:
- 默认存在的
unit.suite.yml对应unit测试目录、functional.suite.yml对应functional测试目录 - 你重命名原有测试目录后,配置文件里指定的路径还是旧目录名,所以会提示找不到引导文件
- 新建的
integrational目录没有对应配置文件,Codeception不会主动识别为测试套件
2. 新增自定义集成测试套件操作步骤
步骤1:新建套件配置文件
在tests根目录下新建integrational.suite.yml,可以直接复制已有functional.suite.yml的内容调整,核心要指定正确的测试目录路径,示例配置参考:
# integrational.suite.yml actor: IntegrationalTester path: integrational # 必须和你新建的测试目录名完全一致 bootstrap: _bootstrap.php # 对应测试目录下的引导文件名 modules: enabled: - Yii2 - \Helper\Integrational - Asserts config: Yii2: configFile: 'config/test-integrational.php' # 可根据你的集成测试需求调整对应Yii配置文件路径
步骤2:补充测试目录必要文件
在tests/integrational目录下新增_bootstrap.php,可以直接复制unit/functional目录下的同名文件内容,根据你的集成测试需求做调整即可。
步骤3:生成测试类
在项目根目录执行命令生成对应Tester类:php vendor/bin/codecept build
步骤4:运行测试
- 命令行运行:直接执行
php vendor/bin/codecept run integrational即可运行所有集成测试用例 - PhpStorm运行:新建Codeception运行配置,套件选择
integrational后点击运行即可
3. 原有测试目录重命名修改方法
如果是要把原有functional目录改名为functional2,不需要新建配置文件,只需要修改functional.suite.yml里的path参数值为functional2即可。
内容的提问来源于stack exchange,提问作者Сергей О.
相关产品推荐
相关产品推荐

