由于我們項(xiàng)目涉及到php,因此需要對(duì)php代碼進(jìn)行單元測(cè)試。經(jīng)過(guò)一番了解,決定用PHPUnit來(lái)測(cè)試php。PHPUnit花了不少時(shí)間摸索如何配置PHPUnit,看官網(wǎng)的文檔也是一把淚。但知道怎么配置后,其實(shí)還是很簡(jiǎn)單的。
-
系統(tǒng):Windows 7
-
PHP版本:PHP 7.0.1
-
服務(wù)器工具:upupw
-
PHPUnit版本:PHPUnit 5.7.15
一、配置PHPUnit
首先到PHPUnit官網(wǎng)(點(diǎn)此進(jìn)入)下載相應(yīng)的版本。我們使用的是php 7.0,于是選擇PHPUnit 5。得到 .phar
文件,并把名字改為 phpunit.phar
。
把該文件放到任意位置。以我自己為例,我把它放到我們項(xiàng)目的目錄下,即D:\repository\CourseManagement\mobile_api_test
。
右鍵 我的電腦 ,選擇 屬性 。點(diǎn)擊左側(cè)的 高級(jí)系統(tǒng)設(shè)置 。此時(shí)彈出 系統(tǒng)屬性 ,選擇 高級(jí) 選項(xiàng)卡,點(diǎn)擊右下角的 環(huán)境變量 。 在用戶變量里面,雙擊 PATH ,在 變量值 后面添加;D:\repository\CourseManagement\mobile_api_test
(注意最前面的分號(hào),路徑填存放phpunit.phar的路徑)。配置這個(gè)是為了在任意位置都能使用PHPUnit,不配置的話,需要在phpunit.phar的路徑下才能使用PHPUnit。
官方文檔里有一點(diǎn)沒(méi)有提到,就是php的環(huán)境變量也要設(shè)置。比如我的 php.exe
在E:\software\wamp\bin\php\php5.5.12
里,那么也要在 PATH 后面添加;E:\software\wamp\bin\php\php5.5.12
。PS:可能是因?yàn)槲覜](méi)有安裝PHP的IDE,所以一直沒(méi)有配置它,偶然之間才想到可能要添加這個(gè)環(huán)境變量。
按快捷鍵 Win + R
,輸入cmd并回車(chē)。進(jìn)入存放phpunit.phar的路徑。輸入 echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
并回車(chē)。接著輸入 phpunit --version
并回車(chē)。如果得到輸出 PHPUnit x.y.z by Sebastian Bergmann and contributors.
則表示配置好了(如果有誤,輸入exit
并回車(chē),重新來(lái)一遍)。如下圖:
二、使用PHPUnit進(jìn)行測(cè)試
使用PhpUnit必須使用類(lèi)進(jìn)行測(cè)試,我們先新建一個(gè)php類(lèi),然后運(yùn)行一下。
1
<?php
2
class MyTestClass extends PHPUnit_Framework_TestCase
3
{
4
/**
5
* Testing the answer to “do you love unit tests?”
6
*/
7
public function testDoYouLoveUnitTests()
8
{
9
$love = true;
10
$this->assertTrue($love);
11
}
12
}
13
?>
將該文件保存為testUnit.php,然后進(jìn)入到該文件的目錄下,運(yùn)行phpunit testUnit.php
得到如下結(jié)果:
D:\UPUPW_AP7.0\htdocs\testUnit>phpunit testUnit.php
PHPUnit 5.7.15 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time: 209 ms, Memory: 10.00MB
OK (1 test, 1 assertion)
參考文章:http://developer.51cto.com/art/201512/499453.htm
http://developer.51cto.com/art/201102/244535.htm