morrislaptop / laravel-boot-maker
部分启动Laravel以进行闪电般的测试
v0.3.0
2024-08-09 16:39 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.43|^10.0|^11.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- fakerphp/faker: ^1.20
- guzzlehttp/guzzle: ^7.4
- laravel/framework: ^9.43|^10.0|^11.0
- laravel/pint: ^1.0
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^6.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- ramsey/uuid: ^4.3
This package is auto-updated.
Last update: 2024-09-09 17:58:23 UTC
README
当你扩展 TestCase
时,你将为你的测试套件中的每个测试启动整个框架。你很可能并不是在每次测试中都使用所有功能,这会大大减慢你的测试套件。
此包允许你“选择”只启动测试通过所需的Laravel功能。因此,你的测试将运行得更快。
安装
你可以通过composer安装此包
composer require morrislaptop/laravel-boot-maker --dev
在tests/CreatesPartialApplication.php
中创建以下特质
<?php
namespace Tests;
trait CreatesPartialApplication
{
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
return $app;
}
}
在tests/PartialTestCase.php
中创建一个使用此特质的基部分测试类
<?php
namespace Tests;
use Morrislaptop\LaravelBootMaker\PartialTestCase as BasePartialTestCase;
abstract class PartialTestCase extends BasePartialTestCase
{
use CreatesPartialApplication;
}
使用方法
建议首先使用完整的TestCase
通过测试,然后降至PartialTestCase
并选择你需要的Laravel功能。
这种方法确保你只使用了你认为正在使用的Laravel功能,这可能有助于尝试从框架中解耦。
<?php
namespace Tests\Feature;
use App\Events\QuestionCreated;
use App\Listeners\AskQuestion;
use Illuminate\Support\Facades\Event;
use Morrislaptop\LaravelBootMaker\Concerns\Events;
use Tests\PartialTestCase;
class QuestionCreatedTest extends PartialTestCase
{
use Events;
/**
* A basic feature test example.
*
* @return void
*/
public function test_example()
{
Event::fake();
Event::assertListening(QuestionCreated::class, AskQuestion::class);
}
}
有关启用功能的完整列表,请参阅src/Concerns;
你可以通过将其包含在TestCase中并确保它具有setUpXXXX
和tearDownXXXX
方法来轻松创建自己的Concerns。
测试
composer test
更新日志
有关最近更改的更多信息,请参阅更新日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关如何报告安全漏洞,请参阅我们的安全策略。
致谢
灵感来自 @ekvedaras 在 @gosuperscript
许可协议
MIT许可(MIT)。有关更多信息,请参阅许可文件。
待办事项
- 安装程序以创建
CreatesPartialApplication
和PartialTestCase
- 监听器以确定使用了哪些Laravel功能