自动化测试开发 - 创建测试项目

  • 作者:KK

  • 发表日期:2016.11.20


  • 学习Yii的自动化测试开发前,请先对Codecetpion单元测试系列知识有个基本的掌握

Yii2官方Demo默认配套的单元测试框架就是Codeception,而且官方专为Codeception编写了相关的扩展以便更方便地开发

不过实际上如果你熟练测试开发的话,喜欢用Codeception、SimpleTest还是PHPUnit都无关痛痒,也不影响Yii2的软件运作,完全可以按照自己的喜好更换tests下的测试框架


tests目录

Yii的demo有个tests目录,里面放的都是Codeception这个测试框架的相关测试代码

要在这里做测试开发的话就要了解一下里面的细节了,整个tests目录可以视为一个“项目”来看待,这个项目存在的作用就是“对Yii的应用程序进行自动测试,看看它有没有BUG”,所以如果你觉得不需要测试的话,就删除这个测试项目(tests目录)吧~不会对程序运行造成任何影响

首先Yii提前帮大家配置好了测试的相关内容以及编写了几个简单的测试用例来作为示例

  • 新手提醒

    Yii并不提供codecept.phar这个命令包,要自己下载配置才能执行测试运作,就像一个典型的PHP软件不会帮你附上LAMP环境一样,需要自己安装配置


初始化项目

我认为你可以暂时把tests目录备份起来以便未来做参考对照,然后把整个tests里面的内容清空,咱们试着手把手把测试项目搭建起来以便对Yii下的测试开发有个深刻认识

假设我已经在Windows下添加了一个叫codecept的系统环境变量,值是php E:\php\bin\codecept.phar

命令行cd到tests目录下,执行%codecept% bootstrap(创建测试项目),会提示一堆初始化成功的消息,最后一行应该是这样说的:

Bootstrap is done. Check out E:\myweb/tests directory

修改目录命名

修改codeception.yml里下图中的配置选项中的“tests”改成codeception

然后再将这个codeception.yml同级目录下的tests目录名改成codeception

(这只是为了让配置内容更像Yii自带的配置,一步步体会Yii的那个测试目录如何构造出来)


测试初始化是否成功

接下来要让测试项目运作起来,测试项目不是一个Web项目,所以当然不需要Web服务器,只需要在命令行里运行就可以

菜鸟提示:以后的其它测试项目操作都要cd到tests目录下(看见codeception.yml这些东西)再输入相关的运行命令

好了我们运行%codecept% run unit如果提示

Codeception PHP Testing Framework v2.0.9
Powered by PHPUnit 5.3.2 by Sebastian Bergmann and contributors.

Unit Tests (0) ------------------------------
---


Time: 264 ms, Memory: 6.00Mb

No tests executed!

说明以上初始化和目录修改工作是做对了