在PhpStorm中通过PHPUnit进行单元测试的简单示例
这篇文章主要介绍“在PhpStorm中通过PHPUnit进行单元测试的简单示例”,在日常操作中,相信很多人在在PhpStorm中通过PHPUnit进行单元测试的简单示例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在PhpStorm中通过PHPUnit进行单元测试的简单示例”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
对指定目录、类、方法运行测试
Laravel 自带的测试演示类位于项目根目录下的 tests
子目录中。在 PhpStorm 中,该目录会被自动标记为绿色,表示是测试目录:
在 PhpStorm 中基于 PHPUnit 进行单元测试很简单,PhpStorm 已经内置了通过本地 PHPUnit 运行测试用例的支持(Laravel 项目初始化的时候已经安装了 phpunit
依赖,PhpStorm 会基于这个 phpunit
对项目进行单元测试),无需额外配置,只需要选中待测试目录、文件、方法,然后在右键下拉菜单选择 Run Test 即可(前提是先要编写好对应的测试用例代码):
测试结果会显示在 PhpStorm 下方的 Run 窗口中:
如果你的 PhpStorm 版本较老,不能自动识别 PHPUnit 并创建对应的测试框架配置,可以在 Preferences | Languages & Frameworks | PHP | Test Frameworks 界面(Windows 系统请将 Preferences 替换成 Settings)手动创建,创建的时候选择 PHPUnit Local,然后再:
脚本路径映射到当前项目根目录下的 vendor/autoload.php
,配置文件映射到当前项目根目录下的 phpunit.xml
。
如果你想要使用其他测试框架(Behat、PHPSpec、Codeception等),也是在这里创建对应的测试框架配置:
要对指定文件进行测试,还可以在打开该文件的代码编辑区域任意位置右键,选择运行该文件的测试代码:
或者在声明该测试类所在行的左侧点击绿色的运行测试图标进行测试:
对于指定方法的测试也可以这么做:
测试成功,运行结果是绿色提示,测试失败,则是红色提示:
并且会标识出错的原因和位置,方便排查。
PHPUnit 代码覆盖率分析
在上面运行测试用例的时候,细心的同学可能已经看到在下拉菜单中除了运行测试的选项外,还有一个包含覆盖率的测试选项:
PHPUnit 的代码覆盖率分析使用了 PHP_CodeCoverage 这个组件,而这个组件又使用了 PHP Xdebug 扩展所提供的代码覆盖率功能,所以要使用代码覆盖率功能,需要先安装 Xdebug 扩展,如果系统没有安装该扩展,可以参考前面安装配置 Xdebug 扩展的教程进行安装和设置。
为了告诉 PHPUnit 哪些源代码文件要包含在代码覆盖率报告中,必须配置白名单。Laravel 自带的 phpunit.xml
(位于项目根目录下)中已经包含了这个配置:
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
上述配置表明 app
目录下的所有后缀为 .php
的 PHP 代码都会包含到代码覆盖率报告中,即使某些文件没有被测试用例覆盖到,同时还可以知道未被覆盖文件中有哪些行是可执行的,另外,你还可以配置跳过哪些代码块,更多设置细节请参考 PHPUnit 官方文档。
我们在 tests
目录上运行包含代码覆盖率的测试,运行完成后,PhpStorm 右侧区域会弹出包含本次测试代码覆盖率分析的窗口:
点击 app
目录进去,可以看到所有子目录的代码覆盖率情况:
另外,我们点击左侧 Project 区域,展开项目目录结构树,也可以看到测试代码覆盖率:
而在代码编辑区,可以看到被覆盖的代码左侧有绿色长条,未被覆盖到的代码左侧是红色长条。
到此,关于“在PhpStorm中通过PHPUnit进行单元测试的简单示例”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!