PhpUnit和Ap框架同时使用

在资质二期项目中,

 

先举一个简单的phpunit例子

 

 <?php
           class testCase extends PHPUnit_Framework_TestCase{
           public function testEmpty(){
     
                  $this->assertEquals(0, 0);
              }
          }


?>

 

运行后可以正常运行。

再举一个简单的可以直接利用Ap框架访问数据库的例子,

 

/*****************************************/
      3     require_once('start.php');
      4
      5
      6     $testPath = '/home/work/defensor/userchk/api/libs';
      7     set_include_path(get_include_path().PATH_SEPARATOR.$testPath);
      8
      9     require_once('remark.php');
     10

 

 

              $remark = new RemarkApi();
     62     $actual = $remark->get(5);
     63     echo $actual['status'];
     64
     65     echo "hello world!";

 

这个样子运行也是没有错的。

 

 

 

然而如果将AP框架和PHPUnit同时使用的话,就会出现冲突

3---10行不变,下面是phpunit的一个类:

 

class remarkTest extends PHPUnit_Framework_TestCase{
     53
     54         public function testEmpty(){
     55
     56             $this->assertEquals(0, 0);
     57         }
     58     }

 

 

这样的话,运行就会失败。

error_log如下所示:

 

[15-Apr-2011 13:40:58] PHP Warning:  Module 'ap' already loaded in Unknown on line 0
[15-Apr-2011 13:40:58] PHP Fatal error :  Call to private method Ap_Application::__sleep() from context 'PHPUnit_Util_GlobalState' in /home/work/local/php/lib/php/PHPUnit/Util/GlobalState.php on line 114

 

 

不知道为什么亟待解决。

 

 

向惠新宸询问:

在phpunit测试类里面添加如下代码:

proctected $backupGlobals = false;

 

问题解决,不知道为啥?我靠 大牛的魅力是无穷的。。。

 

如果还不能解决,将Ap框架new的时候不要生成全局变量,这样的话phpunit会对其进行序列化,那么就会调用一个函数,就会报错。

具体序列化神马的,还要再学习。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值