安装
PHP Archive (PHAR)
代码语言:javascript复制wget -O phpunit https://phar.phpunit.de/phpunit-9.phar
chmod x phpunit
root@php-fpm:/var/www/html# ./phpunit --version
PHPUnit 9.5.27 by Sebastian Bergmann and contributors.
或者,Composer
代码语言:javascript复制composer require --dev phpunit/phpunit ^9
root@php-fpm:/var/www/laravel-demo# ./vendor/bin/phpunit --version
PHPUnit 9.5.24 #StandWithUkraine
配置文件
如果 phpunit.xml
或 phpunit.xml.dist
(按此顺序)存在于当前工作目录并且未使用 --configuration
,将自动从此文件中读取配置。
执行测试
执行全部测试
代码语言:javascript复制phpunit
执行某个测试
代码语言:javascript复制 /**
* @group home
*/
public function testHome()
{
dump(123);
$this->assertTrue(true);
}
//直接用方法名
root@php-fpm:/var/www/laravel-demo# phpunit --filter testHome
//指定组名
root@php-fpm:/var/www/laravel-demo# phpunit --group home
--filter 'TestNamespace\TestCaseClass::testMethod'
--filter 'TestNamespace\TestCaseClass'
--filter TestNamespace
--filter TestCaseClase
--filter testMethod
api 测试
如果只是断言两个变量,就太没意思了,下面看下api测试
代码语言:javascript复制$response = $this->get('/api/user/1/config');
$response->dump();
$response->assertStatus(200);
$keys = [
'aa' => 'integer',
'bb' => 'string',
'cc' => 'string',
'dd' => 'string',
'ee' => 'string',
];
$data = optional(json_decode($response->getContent()))->data;
$this->seeObjectContainsJson($keys, $data->j[0]);
注意,上面的get
用法是laravel特有的
参考
https://phpunit.de/getting-started/phpunit-9.html
https://phpunit.readthedocs.io/zh_CN/latest/index.html