一、它是一款輕量級的PHP測試框架,地址:http://www.phpunit.cnphp
二、手冊:http://www.phpunit.cn/manual/5.7/zh_cn/installation.htmlhtml
一、能夠經過命令操控測試腳本api
二、能夠測試性能數組
三、能夠測試代碼覆蓋率app
四、能夠自動化的更新測試用例的參數數據框架
五、各類格式的日誌函數
一、 通常被測試類的後面加上」Test」,好比要測試的類爲Array,則測試用例的命名爲ArrayTest。性能
二、測試類ArrayTest繼承於PHPUnit_Framework_TestCase測試
三、測試方法必須爲public權限,都是test開頭,或者你也能夠選擇給其加註釋@test來代表該函數爲測試函數ui
四、經過斷言方法來對實際值和預期值進行斷言,斷言方法能夠參照手冊:http://www.phpunit.cn/manual/5.7/zh_cn/appendixes.assertions.html
快速入門:
class ArrayTest extends PHPUnit_Framework_TestCase //測試用例運行後執行 // 斷言數組$fixture中元素的數目是0。 } |
命令行啓動測試用例:
phpunit 測試文件名,此處爲要測試ArrayTest.php文件
phpunit ArrayTest.php PHPUnit 5.7.5 by Sebastian Bergmann and contributors. .. 2 / 2 (100%) Time: 138 ms, Memory: 3.25MB OK (2 tests, 4 assertions) |
記錄測試日誌:
日誌多種格式:http://www.phpunit.cn/manual/5.7/zh_cn/textui.html#textui.clioptions
phpunit ArrayTest.php --log-tap log.txt TAP version 13 |
能夠參考:http://www.phpunit.cn/manual/current/zh_cn/code-coverage-analysis.html
能夠經過配置phpunit.xml設置須要測試的代碼路徑或文件
例如:phpunit.xml的配置(放在項目根目錄)
一、經過生成html頁面查看代碼覆蓋率
經過執行命令:phpunit --coverage-html ./coverage ./src/test
命令解釋:
覆蓋率結果:
能夠看到目錄裏每一個文件的覆蓋率:
還能夠清晰的看到每個文件代碼覆蓋率:
二、經過生成的text文件查看代碼覆蓋率
經過執行命令:phpunit --coverage-text ./src/test > test.log
命令解釋:
覆蓋率結果:
能夠清晰的看到總覆蓋率和每一個文件的覆蓋率。
覆蓋率計算問題:
一、類:只有類中全部代碼都執行了,覆蓋率才爲100%;
二、方法:類中的方法每一行都執行了,覆蓋率纔算100%。例如:類中有5個方法,有兩個方法每一行執行了,覆蓋率爲:40%;
三、行:每一行代碼都執行了就是100%;