Perisian tengah Laravel: laksanakan ujian automatik dan semakan liputan kod

王林
Lepaskan: 2023-07-28 13:56:01
asal
1033 orang telah melayarinya

Laravel middleware: Laksanakan ujian automatik dan pemeriksaan liputan kod

Pengenalan:
Pengujian automatik ialah bahagian penting dalam proses pembangunan perisian. Ia boleh membantu kami menemui masalah dalam kod tepat pada masanya dan meningkatkan kualiti perisian. Dalam rangka kerja Laravel, kami boleh melaksanakan ujian automatik dan semakan liputan kod melalui perisian tengah. Artikel ini akan memperkenalkan cara menggunakan perisian tengah Laravel untuk ujian automatik dan semakan liputan kod serta menyediakan contoh kod yang berkaitan.

1. Apakah perisian tengah Laravel?
Middleware ialah konsep teras dalam rangka kerja Laravel yang boleh melaksanakan fungsi di mana-mana antara permintaan yang memasuki aplikasi dan respons yang dikembalikan kepada klien. Middleware ialah mekanisme yang menapis permintaan dan respons, mengubah suai atau memprosesnya sebelum permintaan sampai ke laluan atau selepas respons dikembalikan kepada klien. Pelbagai fungsi boleh dilaksanakan menggunakan perisian tengah, seperti pengesahan penghalaan, mencegah pemalsuan permintaan merentas tapak, dsb. Dalam ujian automatik dan semakan liputan kod, kami boleh menggunakan perisian tengah untuk mengesan liputan kod dalam permintaan dan respons.

2. Ujian automatik
Menggunakan perisian tengah Laravel untuk ujian automatik boleh membantu kami mencari masalah dalam kod tepat pada masanya dan memastikan ketepatan kod. Di bawah ini kami akan menggunakan contoh untuk memperkenalkan cara menggunakan perisian tengah Laravel untuk ujian automatik.

  1. Buat middleware
    Pertama, kita perlu mencipta middleware untuk ujian automatik. Gunakan arahan Artisan Laravel untuk mencipta middleware:
php artisan make:middleware CodeCoverageMiddleware
Salin selepas log masuk

Arahan ini akan menjana fail kelas middleware bernama CodeCoverageMiddleware dalam direktori app/Http/Middleware. app/Http/Middleware目录下生成一个名为CodeCoverageMiddleware的中间件类文件。

  1. 编辑CodeCoverageMiddleware中间件
    在生成的CodeCoverageMiddleware类文件中,我们可以重写handle方法来实现自动化测试:
namespace AppHttpMiddleware;

use IlluminateSupportFacadesApp;
use IlluminateHttpRequest;

class CodeCoverageMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        if (App::environment('testing')) {
            // 运行代码覆盖率检查
        }

        return $next($request);
    }
}
Salin selepas log masuk

在上述代码中,我们通过判断应用程序是否处于testing环境下来确定是否运行代码覆盖率检查。

  1. 注册中间件
    完成中间件的编辑后,我们需要将其注册到app/Http/Kernel.php文件中的$middleware数组中:
protected $middleware = [
    // ...
    AppHttpMiddlewareCodeCoverageMiddleware::class,
];
Salin selepas log masuk

通过以上步骤,我们已经成功创建并注册了一个用于自动化测试的中间件。现在,当应用程序处于testing环境下时,每个请求都会经过这个中间件。

三、代码覆盖率检查
使用Laravel中间件进行代码覆盖率检查可以帮助我们了解哪些代码被测试覆盖到了,以及哪些代码没有被覆盖到。这有助于我们确定需要进行更多测试的代码区域,提高代码的可靠性。下面我们将以一个示例来介绍如何使用Laravel中间件进行代码覆盖率检查。

  1. 安装覆盖率检查工具
    首先,我们需要安装phpunit/php-code-coverage包来实现代码覆盖率检查:
composer require --dev phpunit/php-code-coverage
Salin selepas log masuk
  1. 编辑CodeCoverageMiddleware中间件
    接下来,我们需要在CodeCoverageMiddleware中间件的handle方法中实现代码覆盖率检查:
namespace AppHttpMiddleware;

use IlluminateSupportFacadesApp;
use IlluminateHttpRequest;
use SebastianBergmannCodeCoverageFilter;
use SebastianBergmannCodeCoverageCodeCoverage;
use SebastianBergmannCodeCoverageReportHTMLFacade as CoverageReporter;

class CodeCoverageMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        if (App::environment('testing')) {
            $filter = new Filter();
            $filter->addFileToWhitelist(base_path());

            $coverage = new CodeCoverage(null, $filter);
            $coverage->start('laravel');

            register_shutdown_function(function () use ($coverage) {
                $coverage->stop();

                CoverageReporter::factory([
                    'target' => storage_path('coverage'),
                ])->process($coverage);
            });
        }

        return $next($request);
    }
}
Salin selepas log masuk

在上述代码中,我们通过使用phpunit/php-code-coverage包提供的类来实现代码覆盖率检查。在每个请求到来时,我们通过start方法开始代码覆盖率检查,并在应用程序结束时通过stop方法结束检查。然后,我们使用CoverageReporter来生成代码覆盖率报告。

  1. 查看代码覆盖率报告
    完成代码覆盖率检查后,我们可以通过打开浏览器并访问http://your-app-url/storage/coverage/index.html
    1. Edit CodeCoverageMiddleware middleware
    Dalam fail kelas CodeCoverageMiddleware yang dihasilkan, kita boleh mengatasi kaedah handle Untuk melaksanakan ujian automatik:


    rrreee

    Dalam kod di atas, kami menentukan sama ada hendak menjalankan semakan liputan kod dengan menentukan sama ada aplikasi berada dalam persekitaran ujian.

      Daftar middleware

      Selepas melengkapkan penyuntingan middleware, kita perlu mendaftarkannya ke $middlewareapp/Http/Kernel.php /code>Dalam tatasusunan:

      🎜rrreee🎜Melalui langkah di atas, kami telah berjaya mencipta dan mendaftarkan perisian tengah untuk ujian automatik. Kini, apabila aplikasi berada dalam persekitaran ujian, setiap permintaan akan melalui perisian tengah ini. 🎜🎜3. Semakan liputan kod🎜Menggunakan perisian tengah Laravel untuk semakan liputan kod boleh membantu kami memahami kod yang dilindungi oleh ujian dan kod yang tidak dilindungi. Ini membantu kami mengenal pasti kawasan kod yang memerlukan lebih banyak ujian dan meningkatkan kebolehpercayaan kod. Di bawah ini kami akan menggunakan contoh untuk memperkenalkan cara menggunakan perisian tengah Laravel untuk semakan liputan kod. 🎜🎜🎜Pasang alat semakan liputan🎜Mula-mula, kita perlu memasang pakej phpunit/php-code-coverage untuk melaksanakan semakan liputan kod: 🎜🎜rrreee
        🎜EditCodeCoverageMiddleware middleware 🎜Seterusnya, kita perlu melaksanakan semakan liputan kod dalam kaedah handle bagi middleware CodeCoverageMiddleware: 🎜🎜rrreee🎜Dalam kod di atas , kami melaksanakan semakan liputan kod dengan menggunakan kelas yang disediakan oleh pakej phpunit/php-code-coverage. Apabila setiap permintaan datang, kami memulakan semakan liputan kod melalui kaedah start dan menamatkan semakan melalui kaedah stop apabila aplikasi tamat. Kami kemudian menggunakan CoverageReporter untuk menjana laporan liputan kod. 🎜
          🎜Lihat laporan liputan kod🎜Selepas melengkapkan semakan liputan kod, kami boleh berbuat demikian dengan membuka penyemak imbas dan melawati http://your-app-url/storage/coverage/ index. html untuk melihat laporan liputan kod. 🎜🎜🎜Kesimpulan: 🎜Laravel middleware menyediakan kami cara yang sangat mudah untuk melaksanakan ujian automatik dan semakan liputan kod. Dengan mencipta kelas middleware dan mendaftarkannya dalam aplikasi, kami boleh menjalankan semakan liputan kod secara automatik dalam persekitaran ujian dan melihat laporan berkaitan. Ini membantu kami mencari masalah dalam kod dengan cepat dan memastikan kualiti kod. 🎜🎜Malah, perisian tengah Laravel bukan sahaja boleh digunakan untuk ujian automatik dan semakan liputan kod, tetapi juga boleh digunakan untuk melaksanakan banyak fungsi lain, seperti pengelogan, penapisan permintaan, dll. Adalah sangat penting bagi pembangun untuk mahir dalam penggunaan perisian tengah. 🎜🎜Saya harap artikel ini dapat membantu pembaca lebih memahami perisian tengah Laravel dan cara menggunakannya untuk melaksanakan ujian automatik dan semakan liputan kod. Setiap orang boleh menggunakan perisian tengah secara fleksibel mengikut keperluan dan keadaan sebenar mereka sendiri untuk meningkatkan kecekapan pembangunan perisian dan kualiti kod. 🎜

    Atas ialah kandungan terperinci Perisian tengah Laravel: laksanakan ujian automatik dan semakan liputan kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:php.cn
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan