phpunit 6.5依赖php7 代码覆盖率分析报告需要xdebug 2.5以上安装php unit
最简单的安装方法 phar下载php档案包pharwget http://phar.phpunit.cn/phpunit-6.5.pharchmod +x phpunit-6.5.pharsudo mv phpunit-6.5.phar /usr/local/bin/phpunitphpunit --version
windows下的安装下载http://phar.phpunit.cn/phpunit-6.5.3.phar 并且保存到环境变量中。建立外包覆批处理脚本echo @php "%~dp0phpunit.phar" %* > phpunit.cmd校验发行包
下载对应的pgp签名,如wget http://phar.phpunit.cn/phpunit.pharwget http://phar.phpunit.cn/phpunit.phar.ascgpg phpunit.phar.asc 可能会报错说没有公钥所以需要在密钥服务器上取得发行包管理器,如:pgp.uni-mainz.degpg --keyserver pgp.uni-mainz.de --rev-keys 0x4AA394086372C20Acomposer
composer require --dev phpunit/phpunit ^4.8composer require --dev phpunit/php-invoker
dbunit
dbunit支持堆数据库交互测试
composer require --dev phpunit/dbunit
编写phpunit 测试
针对类的测试写在ClassText中一般继承自 PHPUnit_Framework_TestCase测试都是命名为test*的公共方法也可以在注释里面@test标注将其标注为测试方法用@depends标注来表达依赖关系
例子
usePHPUnix\Framework\TestCase;classStact\Framework\TestCase;classStackTestextendsTestCase{ publicfunctiontestEmpty(){ $stack = []; $this->assertEmpty($stack); return$stack; } /** * @depends testEmpty */publicfunctiontestPush(array $stack){ array_push($stack, 'foo'); $this->assertEquals('foo', $stack[count($stack)-1]); $this->assertNotEmpty($stack); return$stack; } /** * @depends testPush */publicfunctiontestPop(array $stack){ $this->assertEquals('foo', array_pop($stack)); $this->assertEmpty($stack); }}