PHPUnit 基本使用

2021-08-28 15:45:18 字數 3151 閱讀 4511

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

因為phpunit要通過pear安裝,所以首先要安裝pear

安裝好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資料夾,這樣就安裝好了。

[php]

view plain

copy

print

?首先編寫待測試類,這裡用乙個計算器作為例子,計算器類為**一:  

class calculator   

}   

編寫測試用例類,這個類引入了phpunit.php和待測試的計算器類,然後初始化待測試類,編寫斷言。  

require_once("c8-2.php");   

require_once("phpunit.php");   

class calculatortest extends phpunit_testcase   

//最後消亡的時候清除掉這個類   

function teardown()    

function testadd()   

function testadd2()   

}   

最後編寫測試類,不編寫這個類也可以,在命令列下直接跑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);   

<?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 suite()    

}   

首先編寫待測試類,這裡用乙個計算器作為例子,計算器類為**一:

class calculator

} 編寫測試用例類,這個類引入了phpunit.php和待測試的計算器類,然後初始化待測試類,編寫斷言。

require_once("c8-2.php");

require_once("phpunit.php");

class calculatortest extends phpunit_testcase

//最後消亡的時候清除掉這個類

function teardown()

function testadd()

function testadd2()

} 最後編寫測試類,不編寫這個類也可以,在命令列下直接跑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);

<?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 suite()

}

在命令列執行phpunit alltests就可以了

PHPUnit安裝及使用

覆蓋率 進入 檢視自己php版本對應的phpunit版本 根據自己的php版本去選擇要安裝 的phpunit的版本 我的php是 7.1.33 我選擇 phpunit 7 進入臨時存放資料夾,執行如下操作 composer安裝phpunit擴充套件包到專案 composer require phpu...

如何使用PHPUnit進行測試?

phpunit是php語言的一種單元測試框架。大多數站點所有者都想要實現phpunit測試,因為這樣我們可以簡單地使用命令進行測試。如果你不知道phpunit,也不知道如何測試使用,那麼就按照下面的例子來學習吧。這裡我將給出乙個非常簡單的phpunit示例,以及它是如何從頭開始工作的。我用phpun...

PhpUnit和Ap框架同時使用

在資質二期專案中,先舉乙個簡單的phpunit例子 class testcase extends phpunit framework testcase 執行後可以正常執行。再舉乙個簡單的可以直接利用ap框架訪問資料庫的例子,3 require once start.php 4 5 6 testpat...