cari
Rumahpembangunan bahagian belakangtutorial phpPerisian tengah Laravel: laksanakan ujian automatik dan semakan liputan kod

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

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);
    }
}

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

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

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

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

  1. 安装覆盖率检查工具
    首先,我们需要安装phpunit/php-code-coverage包来实现代码覆盖率检查:
composer require --dev phpunit/php-code-coverage
  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);
    }
}

在上述代码中,我们通过使用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!

    Kenyataan
    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
    Terangkan konsep sesi PHP secara ringkas.Terangkan konsep sesi PHP secara ringkas.Apr 26, 2025 am 12:09 AM

    PhpSSsionsTrackUserDataacrossmultiplePagerequestSuseUniquidStoredinacookie.here'ShoWtomanAgeThemEffectely: 1) startAnSessionWithSession_Start () danStoRedatain $ _Session.2)

    Bagaimana anda melengkapkan semua nilai yang disimpan dalam sesi PHP?Bagaimana anda melengkapkan semua nilai yang disimpan dalam sesi PHP?Apr 26, 2025 am 12:06 AM

    Dalam PHP, iterating melalui data sesi dapat dicapai melalui langkah -langkah berikut: 1. Mulakan sesi menggunakan session_start (). 2. ITERATE melalui gelung foreach melalui semua pasangan nilai utama dalam array $ _Session. 3. Apabila memproses struktur data kompleks, gunakan fungsi is_array () atau is_object () dan gunakan print_r () untuk mengeluarkan maklumat terperinci. 4. Apabila mengoptimumkan traversal, paging boleh digunakan untuk mengelakkan memproses sejumlah besar data pada satu masa. Ini akan membantu anda mengurus dan menggunakan data sesi PHP dengan lebih cekap dalam projek sebenar anda.

    Terangkan cara menggunakan sesi untuk pengesahan pengguna.Terangkan cara menggunakan sesi untuk pengesahan pengguna.Apr 26, 2025 am 12:04 AM

    Sesi ini menyedari pengesahan pengguna melalui mekanisme pengurusan negara pelayan. 1) Penciptaan sesi dan penjanaan ID unik, 2) IDS diluluskan melalui kuki, 3) kedai pelayan dan mengakses data sesi melalui ID, 4) Pengesahan pengguna dan pengurusan status direalisasikan, meningkatkan keselamatan aplikasi dan pengalaman pengguna.

    Beri contoh bagaimana untuk menyimpan nama pengguna dalam sesi PHP.Beri contoh bagaimana untuk menyimpan nama pengguna dalam sesi PHP.Apr 26, 2025 am 12:03 AM

    TOSTOREAUSER'SNAMEINAPHPSESSION, startTheSessionWithSsion_Start (), thenassignthenameto $ _Session ['username']

    Apakah beberapa masalah biasa yang boleh menyebabkan sesi PHP gagal?Apakah beberapa masalah biasa yang boleh menyebabkan sesi PHP gagal?Apr 25, 2025 am 12:16 AM

    Sebab -sebab kegagalan phpsession termasuk kesilapan konfigurasi, isu cookie, dan tamat tempoh sesi. 1. Ralat Konfigurasi: Semak dan tetapkan session.save_path yang betul. Masalah 2.Cookie: Pastikan kuki ditetapkan dengan betul. 3.Session Expires: Laraskan Nilai Sesi.GC_MAXLifetime untuk melanjutkan masa sesi.

    Bagaimanakah anda menyebarkan isu berkaitan sesi dalam PHP?Bagaimanakah anda menyebarkan isu berkaitan sesi dalam PHP?Apr 25, 2025 am 12:12 AM

    Kaedah untuk masalah sesi debug dalam PHP termasuk: 1. Periksa sama ada sesi dimulakan dengan betul; 2. Sahkan penghantaran ID sesi; 3. Semak penyimpanan dan bacaan data sesi; 4. Semak konfigurasi pelayan. Dengan mengeluarkan ID dan data sesi, melihat kandungan fail sesi, dan lain-lain, anda boleh mendiagnosis dan menyelesaikan masalah yang berkaitan dengan sesi.

    Apa yang berlaku jika session_start () dipanggil beberapa kali?Apa yang berlaku jika session_start () dipanggil beberapa kali?Apr 25, 2025 am 12:06 AM

    Pelbagai panggilan ke session_start () akan menghasilkan mesej amaran dan kemungkinan penggantian data. 1) PHP akan mengeluarkan amaran, menyebabkan sesi telah dimulakan. 2) Ia boleh menyebabkan penggantian data sesi yang tidak dijangka. 3) Gunakan session_status () untuk memeriksa status sesi untuk mengelakkan panggilan berulang.

    Bagaimana anda mengkonfigurasi seumur hidup sesi di PHP?Bagaimana anda mengkonfigurasi seumur hidup sesi di PHP?Apr 25, 2025 am 12:05 AM

    Mengkonfigurasi kitaran hayat sesi dalam PHP boleh dicapai dengan menetapkan sesi.gc_maxlifetime dan session.cookie_lifetime. 1) session.gc_maxlifetime mengawal masa survival data sesi pelayan, 2) session.cookie_lifetime mengawal kitaran hayat kuki klien. Apabila ditetapkan ke 0, kuki tamat apabila penyemak imbas ditutup.

    See all articles

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    PhpStorm versi Mac

    PhpStorm versi Mac

    Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

    Penyesuai Pelayan SAP NetWeaver untuk Eclipse

    Penyesuai Pelayan SAP NetWeaver untuk Eclipse

    Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

    MinGW - GNU Minimalis untuk Windows

    MinGW - GNU Minimalis untuk Windows

    Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

    VSCode Windows 64-bit Muat Turun

    VSCode Windows 64-bit Muat Turun

    Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft