写测试代码时,有时候需要利用phpunit来生成测试代码覆盖率报告,方便调试和检查。本文主要聊聊如何在PHPStorm中配置phpunit。
假设phpunit.xml
如下:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="../vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="abc123">
<directory suffix="Test.php">./Integrations/abc123</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">./Integrations/abc123/</directory>
<directory suffix=".php">../app/Integrations/abc123</directory>
</whitelist>
</filter>
<php>
<env name="APP_DEBUG" value="true"/>
<env name="APP_ENV" value="testing"/>
<env name="APP_KEY" value="abc123"/>
<env name="APP_URL" value="https://test.lx1036.com"/>
<env name="CACHE_DRIVER" value="redis"/>
<env name="DB_DATABASE" value="abc123"/>
<env name="DB_PASSWORD" value="testing"/>
<env name="DB_USERNAME" value="testing"/>
<env name="FILESYSTEM_CLOUD" value="local"/>
<env name="MAIL_DRIVER" value="log"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="SESSION_DRIVER" value="extended"/>
<env name="TEST_AS_OF_DATE" value="2015-01-05"/>
<env name="TEST_DATA_SET" value="simple"/>
</php>
</phpunit>
然后点击Run/Debug Configurations
按钮,设置phpunit.xml
配置文件路径,测试报告存放位置--coverage-html /Applications/MAMP/htdocs/WebService/API/storage/logs/tests/abc123
,同时还有xdebug.so的配置路径-d zend_extension=/usr/local/opt/php71-xdebug/xdebug.so
,如图:
记得本地php环境得安装xdebug扩展,但由于composer安装包时有xdebug扩展会减缓速度,可以这么设置避免这个问题:
OK,当点击Run
按钮运行测试时,会生成测试覆盖率报告:
phpunit-abc123.xml
中配置了whitelist
只显示这两个目录./Integrations/abc123/, ../app/Integrations/abc123
的测试覆盖率报告。测试报告存放在/Applications/MAMP/htdocs/WebService/API/storage/logs/tests/abc123
,是html文件,可在浏览器中打开。当然,要生成测试报告,测试运行速度就会大大降低。
OK,有了测试报告可作为调试和检查代码的补充手段,能从整体层面查看代码的质量。为了修改出高质量代码,这个技巧也是必要的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。