一、它是一款轻量级的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%;