yii2 模块内的单元测试

Unit test inside a Module in yii2

如何在模块内执行单元测试。这是我的项目结构

yii2-app-advanced 是一个很好的解决方案示例。

include 部分添加到 project level codeception.yml 文件:

include:
    - modules/api
    - modules/dtr

Include 设置记录在 https://codeception.com/docs/08-Customization#One-Runner-for-Multiple-Applications

您需要 modules/dtr 目录中的 codeception.yml 文件,它看起来像普通的独立 codeception.yaml 文件。

  • codecept run 命令将 运行 项目级测试和包含模块的测试。
  • codecept run modules/dtr/tests/unit/ 执行该模块的所有单元测试。
  • codecept run modules/dtr/tests/unit/models/FirstTest.php 执行特定测试

如果您不想拥有顶级 codeception.yml 文件,您可以指定模块目录的路径(无论如何您都需要 codeception.yml 文件)。

  • codecept run -c modules/dtr 执行所有测试
  • codecept run -c modules/dtr tests/unit/models/FirstTest.php 执行特定测试
  • 但使用名称过滤器更方便 - codecept run -c modules/dtr :FirstTest

-c 参数记录在 https://codeception.com/docs/07-AdvancedUsage#Running-from-different-folders