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 目录中:
php artisan make:test UserTest
如果想在 tests/Unit
目录中创建一个测试,你可以在执行make:test 命令时使用 --unit
选项:
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命令
vendor/bin/phpunit
注意:
- 在使用phpstrom创建的单元测试,一定是要继承 tests/TestCase.php类,不能去继承
PHPUnit\Framework\TestCase
,不然是不能使用缓存,数据配置的。因为tests/TestCase.php使用了CreatesApplication
组合,他可以像web一样的来使用 - 在项目根目录下的phpunit.xml文件中,这一行要注释掉,让其使用.env文件中默认的缓存文件。要不然也会是用不了缓存。
<env name="CACHE_DRIVER" value="array"/>