hughsaffar / laravel-test-trap
Laravel Test Trap
1.1.4
2023-06-28 14:48 UTC
Requires
- php: >=7.4
- laravel/framework: ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0
- league/climate: ^3.5
- phpunit/phpunit: ^8.0 | ^9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- orchestra/testbench: ^5.0
- psalm/plugin-laravel: ^1.2
- vimeo/psalm: ^3.11
This package is auto-updated.
Last update: 2024-08-28 17:59:49 UTC
README
Laravel Test Trap 将帮助您捕捉任何运行缓慢的测试,或者在 SQL 查询运行缓慢或多次执行时。Laravel Test Trap 受 phpunit-speedtrap 启发,并针对 Laravel 应用程序进行了优化。
安装
您可以通过 composer 安装此包
composer require --dev hughsaffar/laravel-test-trap
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="TestTrap\TestTrapServiceProvider" --tag="config"
这是发布配置文件的内容
return [ 'ignore_migrations_queries' => env('TEST_TRAP_IGNORE_MIGRATIONS_QUERIES', true), 'environment_name' => env('TEST_TRAP_ENVIRONMENT', 'testing'), ];
- 通过将
ignore_migrations_queries设置为true,Laravel Test Trap 不会记录与迁移相关的任何查询。如果您在测试中使用RefreshDatabase特性,这将非常有用。但是,如果您手动为测试数据库运行迁移,则需要将值设置为false; - 默认情况下,Laravel Test Trap 仅在应用程序运行在
testing环境时记录查询。如果您的应用程序具有不同的测试环境名称,您可以通过更改environment_name的值来覆盖它。
使用方法
Laravel Test Trap 附带一个 PHPUnit 扩展类,您需要将其添加到 phpunit.xml 文件中。
<extensions> <extension class="TestTrap\TestTrapExtension"> <arguments> <array> <element key="speed"> <double>500</double> </element> <element key="queryCalled"> <integer>10</integer> </element> <element key="querySpeed"> <double>1000</double> </element> </array> </arguments> </extension> </extensions>
在这个例子中,我们要求 Test Trap 报告任何测试,
- 运行时间超过 500ms
- 或在测试中执行单个查询超过 10 次
- 或查询运行时间超过一秒(1000ms)
禁用 Laravel Test Trap
如果您不希望 Laravel Test Trap 总是与您的测试一起运行,您只需在 phpunit.xml 文件中添加一个环境变量即可禁用它
<php> ... <server name="TEST_TRAP_DISABLE" value="true"/> ... </php>
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
贡献
有关详细信息,请参阅 CONTRIBUTING
安全性
如果您发现任何安全相关的问题,请通过电子邮件 hs@houmaan.ca 而不是使用问题跟踪器来报告。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件