laravel下phpunit的使用

文档参考:

https://laravel.p2hp.com/cndocs/10.x/testing

https://blog.csdn.net/Attitude_do_it/article/details/122713203

测试说明

默认情况下,你应用程序的 tests 目录下包含两个子目录:Feature和 Unit 。

单元测试 (Unit )是针对你的代码中非常少,而且相对独立的一部分代码来进行的测试。实际上,大部分单元测试都是针对单个方法进行的。在你的 Unit 测试目录中进行测试,不会启动你的 Laravel 应用程序,因此无法访问你的应用程序的数据库或其他框架服务。

功能测试 (Feature)能测试你的大部分代码,包括多个对象如何相互交互,甚至是对 JSON 端点的完整 HTTP 请求。 通常,你的大多数测试应该是功能测试。这些类型的测试可以最大程度地确保你的系统作为一个整体按预期运行

创建测试

默认是是创建功能测试的,这个会创建一个UserTest的类,默认情况下,将其放置在 tests/Feature 目录中:

c 复制代码
php artisan make:test UserTest

如果想在 tests/Unit 目录中创建一个测试,你可以在执行make:test 命令时使用 --unit 选项:

c 复制代码
php artisan make:test UserTest --unit

执行测试命令

1、在phpstrom中执行

执行结果:

2、使用artisan

格式:php artisan test --filter 方法名 测试文件路径

php artisan test --filter testMysql tests/Unit/ExampleTest.php

3、直接使用phpunit命令

bash 复制代码
vendor/bin/phpunit

注意:

  1. 在使用phpstrom创建的单元测试,一定是要继承 tests/TestCase.php类,不能去继承 PHPUnit\Framework\TestCase,不然是不能使用缓存,数据配置的。因为tests/TestCase.php使用了 CreatesApplication组合,他可以像web一样的来使用
  2. 在项目根目录下的phpunit.xml文件中,这一行要注释掉,让其使用.env文件中默认的缓存文件。要不然也会是用不了缓存。
xml 复制代码
<env name="CACHE_DRIVER" value="array"/>
相关推荐
huangtedianzi31 分钟前
Can PCB Reverse Engineering Recover a Multilayer Circuit Board?
php
星恒讯工业路由器1 小时前
工业网络设备选型:导轨式、机架式与车载式的部署差异
开发语言·网络·数据库·php·工业路由器·导轨式·车载式
智能直播10 小时前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
墨云安全11 小时前
内网资产无法暴露到公网,怎么做安全检测?2026 年内网渗透测试的落地路径
开发语言·安全·网络安全·渗透测试·php
我是唐青枫13 小时前
Yii2 Applications 详解:应用生命周期、组件配置与多入口实战
php
kimnoic14 小时前
PHP 8.2的DNF类型怎么用才规范
开发语言·php
中屹指纹浏览器svip15 小时前
打开账号环境网页报错,常见原因有哪些?
服务器·开发语言·php·中屹指纹浏览器
修船大队长17 小时前
CanNm 从休眠唤醒后重复消息报文的周期与数量分析
开发语言·php
李纲明17 小时前
WordPress 安全加固基线:更新策略、文件权限、登录面收缩和备份验证(含回滚注意)
运维·安全·php·wordpress
Novproxy_Z18 小时前
IPv4 与 IPv6 代理在跨境自动化场景下的选型与风险
运维·自动化·php