PHPUnit 基本使用

       头一次使用这种东西,开始有些手忙脚乱,弄了二天了,终于有点眉目了,记录一下过程。

  以下都是在windows下进行,我的php版本是php-5.1.4-win32

  因为phpunit要通过pear安装,所以首先要安装pear

  找到php的目录下有一个go-pear.bat,双击运行,提示你安装系统级别的还是一个本地拷贝,直接回车,定制安装目录,选择默认即可,直接回车。程序会自动从网站上下载所需要的文件,过一会就提示你安装好了。

  安装好pear后,在php的目录下发现有一个pear.bat,这个是pear安装包用的程序,

  在命令行进行php目录,输入 pear install phpunit2

  即可,安装完成。

  在php目录下会生成一个phpunit.bat,这个是命令行下的测试命令。

  我们可以把他复制到我们要测试程序的目录下面。

  在命令行下输入 phpunit sampleTest

  就是对sampleTest这个case进行测试了。

  有二点需要注意的地方:

  phpunit需要pear的benchmark包,所以要安装 pear install benchmark即可。

  在windows下安装完成后还不能直接进行测试,运行测试程序时会出现 'php'不是内部或外部命令,也不是可运行的程序。的错误,经我一路跟踪,最后在PHPUnit2/Util/Fileloader.php这个文件里找到了问题所在,这个文件是载入测试文件用的,同时使用php解释器进行了语法检查,shell_exec('php -l ' . escapeshellarg($filename));,而我的php.exe并没有在系统的path中,所以出现了上述问题,一种办法是将$output到include之前的代码全部注释掉,这样就不用语法检查了,还有一种办法就是在系统path中加入php的安装目录。



搞单元测试的大概步骤是:编写待测试类,编写测试用例类,编写测试类,测试。

单元测试首先就是要安装测试的类库了,用pear安装PHPUnit,window下这样操作,首先安装pear,在pear下发现phpunit的频道pear channel-discover pear.phpunit.de,然后安装之pear install phpunit/PHPUnit(使用这条指令,将不会完全安装PHPUnit的所有元素,请使用pear install --alldepsphpunit/PHPUnit),这时在php\pear会有PHPUnit.php和PHPUnit文件夹,这样就安装好了。

首先编写待测试类,这里用一个计算器作为例子,计算器类为代码一:

 
class calculator{ 
    function add($p1,$p2) 
    { 
        return $p1+$p2; 
    } 
} 

编写测试用例类,这个类引入了PHPUnit.php和待测试的计算器类,然后初始化待测试类,编写断言。
 
    require_once("c8-2.php"); 
    require_once("PHPUnit.php"); 

    class calculatorTest extends PHPUnit_TestCase 
    { 
        public $o; 
        //开始的时候初始化一个待测试类 
        function setUp() 
        { 
            $this->o = new calculator(); 
        } 
        //最后消亡的时候清除掉这个类 
        function tearDown() { 
                unset($this->o); 
        } 
        function testadd() 
        { 
            $r = $this->o->add(1,2); 
            $e = 5; 
            //assertEquals和assertTrue基本一样,不过这个返回的参数更加详细 
            //这里的1+2肯定等于3,我们故意写错看下他的反应。注意这里是故意写错,实际测试时,这些结果必须是完全正确的,因为它的功能就是检测类方法是否正确。 
            $this->assertEquals($r,$e); 
        } 
        function testadd2() 
        { 
            $r = $this->o->add(102,106); 
            $e = 208; 
            $this->assertTrue($r == $e); 
        } 
         
    } 

最后编写测试类,不编写这个类也可以,在命令行下直接跑phpunitcalculatorTest就行。

 
    require_once("testc8-2.php"); 
    require_once("PHPUnit.php"); 
    //载入测试用例 
    $s = new PHPUnit_TestSuite("calculatorTest"); 
    //测试 
    $r = PHPUnit::run($s); 
    //测试结果 
    echo $r->toString(); 
    //print_r($r); 

跑一边这个测试类就可以了,它输出了测试用例中所有的测试结果。如果你有多个类,多个测试类的test类,那么可以编写一个AllTests套件。包含所有的待测试的测试类,然后在phpunit下统一执行就行。这个类可能是这样的:

<?php  
require_once 'PHPUnit/Framework.php'; 
require_once 'PHPUnit/TextUI/TestRunner.php';//这里引入了这个文件 

require_once 'DemoTest.php';  //引入了两个测试类
require_once 'calculatortest.php'; 

class AllTests { 
public static function main() { 
PHPUnit_TextUI_TestRunner::run(self::suite()); 
} 

public static function suite() { 
$suite = new PHPUnit_Framework_TestSuite('Zend Framework - Zend'); 
$suite->addTestSuite('DemoTest'); //最佳测试类
$suite->addTestSuite('calculatortest'); 
return $suite; 
} 
} 



在命令行执行phpunit alltests就可以了


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要安装和使用PHPUnit,您可以按照以下步骤进行操作: 1. 下载PHPUnit使用命令`wget https://phar.phpunit.de/phpunit.phar`下载PHPUnit。 2. 将PHPUnit设置为全局变量:使用命令`mv phpunit.phar /usr/local/bin/phpunit`将PHPUnit移动到/usr/local/bin目录下,这样您就可以在任何位置直接使用`phpunit`命令了。 3. 检查安装是否成功:在命令行中输入`phpunit --version`,如果正确显示PHPUnit的版本号,则表示安装成功。 4. 创建测试文件:在您的项目目录中创建一个名为`TestExample.php`的文件,并添加测试代码。 5. 运行测试:在命令行中进入到您的项目目录中,然后运行`phpunit TestExample.php`命令来执行测试。 6. 配置文件:如果您需要自定义PHPUnit的配置,可以在项目目录中创建一个名为`phpunit.xml`或`phpunit.xml.dist`的配置文件。如果您希望忽略当前目录下的配置文件,可以使用`--no-configuration`选项来跳过配置文件的加载。 通过按照上述步骤进行操作,您就可以成功安装和使用PHPUnit来进行PHP单元测试了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [PHPUnit简介及使用](https://blog.csdn.net/agonie201218/article/details/89675236)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [PHPUnit介绍及安装](https://blog.csdn.net/lg_lin/article/details/8073945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值