让TP3支持测试框架codeception

TP算是比较古早的框架了,生产上还是有许多老旧项目跑在上面,重构和维护都很困难,考虑引入单元测试;要让TP支持codeception 关键是自动加载能找到启动类,这边提供已处理好的部分依赖引入即可

1. 引入Composer与依赖

  1. 部分项目尚未支持Composer,先让他支持composer,已支持无需添加

    • composer init
  2. 安装codeception

    • composer require "codeception/codeception" --dev -vvv
  3. 创建启动配置

    • vendor/bin/codecept bootstrap
    • composer update --dev -vvv

2. 修改启动文件

  1. 下载 bootstrap.php,tp-env-init.php,TpTestHelper.php放入 tests/bootstrap 文件夹(没有创建)
  2. 修改 codeception.yml 文件添加以下配置

    bootstrap: bootstrap/bootstrap.php

3. 测试

  1. 创建一个测试用例

    • vendor/bin/codecept generate:suite unit
    • vendor/bin/codecept generate:test unit Example
    • 编写测试 tests\unit\ExampleTest.php
  2. 开始测试

    • vendor/bin/codecept run unit

4. IDE结合(让PHPSTROM 的支持)

  1. https://blog.jetbrains.com/phpstorm/2017/03/codeception-support-comes-to-phpstorm-2017-1/

更多资料

  1. codeception 快速起步: https://codeception.com/docs/01-Introduction
  2. phpunit 文档: http://www.phpunit.cn/manual/current/zh_cn/index.html