phpunit 类之间的调用关系

追一个phpunit的潜规则引发的bug,顺便把phpunit的代码简单看了一遍:

记录如下:

Phpunit文件:

require_once 'PHPUnit/Util/Filter.php';

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');

require 'PHPUnit/TextUI/Command.php';

启动是从Command.php中开始,main:

调用$runner->doRun:调用$suite->run :

我们看下类PHPUnit_Framework_TestSuite,

构造函数中: 获得类名,获得所有的test函数。

看下$suite->run:

调用suite的$this->setUp(); 对于每个test,调用$test->runTest,调用suite的$this->tearDown();

看下$suite->runTest: 调用$test->run。

所有的case继承自类PHPUnit_Framework_TestCase。

这个里面的$backupGlobals 可以控制全局变量$GLOBALS的备份和恢复。布尔类型。有时候这个全局变量的备份和恢复可能会给较为复杂的框架的测试带来误解。可以选择关闭。

这里的run其实是调用:$result->run($this); 然后又调用了自己的$test->runBare();

看下$test->runBare(); :

默认是先备份GLOBALS变量。这个动作是在所有的操作之前的。调用setUp函数。调用$this->runTest(); 调用tearDown。恢复GLOBALS。

看下$this->runTest(); :

得到函数名称,调用test函数

看下PHPUnit_Framework_TestResult的run:

加载了xdebug,如果设置了$useXdebug ,启动code coverage。调用$test->runBare(); 结束code coverage统计。

几个主要的类的关系:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值