morrislaptop/laravel-boot-maker

部分启动Laravel以进行闪电般的测试

v0.3.0 2024-08-09 16:39 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel Boot Maker

当你扩展 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中并确保它具有setUpXXXXtearDownXXXX方法来轻松创建自己的Concerns。

测试

composer test

更新日志

有关最近更改的更多信息,请参阅更新日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅我们的安全策略

致谢

灵感来自 @ekvedaras 在 @gosuperscript

许可协议

MIT许可(MIT)。有关更多信息,请参阅许可文件

待办事项

  • 安装程序以创建CreatesPartialApplicationPartialTestCase
  • 监听器以确定使用了哪些Laravel功能