Cara menggunakan PHPUnit untuk ujian liputan kod dalam pembangunan PHP

PHPz
Lepaskan: 2023-06-27 10:30:01
asal
593 orang telah melayarinya

Untuk pembangun PHP, menggunakan PHPUnit untuk ujian liputan kod adalah tugas yang sangat penting. Ujian liputan kod boleh membantu pembangun menyemak sama ada terdapat bahagian kod yang belum diuji yang mereka tulis dan sama ada liputan ujian cukup tinggi. Artikel ini akan memperkenalkan cara menggunakan PHPUnit untuk ujian liputan kod.

Pertama, kita perlu memasang PHPUnit. Komposer boleh digunakan untuk memasang PHPUnit:

composer require --dev phpunit/phpunit
Salin selepas log masuk

Selepas pemasangan selesai, kita boleh menjalankan arahan berikut dalam terminal untuk menyemak sama ada PHPUnit telah berjaya dipasang:

php vendor/bin/phpunit --version
Salin selepas log masuk

Seterusnya, kita perlu mengkonfigurasi PHPUnit sebelum menjalankan ujian. Cipta fail phpunit.xml dalam direktori akar projek dengan kandungan berikut:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Example Test Suite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">src</directory>
        </whitelist>
    </filter>
</phpunit>
Salin selepas log masuk

Fail konfigurasi ini memberitahu PHPUnit fail yang harus disertakan semasa menjalankan ujian, dan juga mengkonfigurasi beberapa ralat semasa ujian dijalankan.

Sebelum kita menulis kod ujian, mari kita lihat contoh mudah di bawah:

<?php

class Foo
{
    public function bar()
    {
        return true;
    }
}
Salin selepas log masuk

Ini ialah kelas PHP yang sangat mudah yang mengandungi kaedah awam yang dipanggil bar() yang mengembalikan nilai boolean. Sekarang kita perlu menulis ujian untuk kelas ini untuk memastikan ia berkelakuan seperti yang diharapkan. Buat fail ujian dalam direktori ujian bernama FooTest.php dengan kandungan berikut:

<?php
    
use PHPUnitFrameworkTestCase;

class FooTest extends TestCase
{
    /** @test */
    public function it_should_return_true()
    {
        $foo = new Foo;
        $this->assertTrue($foo->bar());
    }
}
Salin selepas log masuk

Ujian ini sangat mudah. Kami membuat kelas Foo dan memastikan kaedah bar()nya kembali benar. Kini kami boleh menjalankan ujian dan melihat laporan liputan yang dijana oleh PHPUnit. Jalankan arahan berikut dalam terminal:

php vendor/bin/phpunit --coverage-html coverage
Salin selepas log masuk

Perintah ini akan menjana laporan liputan HTML dan menyimpannya dalam direktori liputan di bawah direktori akar projek. Buka laporan dan anda dapat melihat bahawa liputan kod kelas Foo ialah 100%. Ini bermakna ujian yang kami tulis telah merangkumi semua kod kelas Foo.

Secara amnya, PHPUnit ialah alat ujian yang sangat berkuasa yang boleh membantu kami menulis kod PHP berkualiti tinggi. Ujian liputan kod ialah ciri utama PHPUnit, memastikan bahawa ujian yang kami tulis meliputi setiap bahagian kod kami. Menggunakan PHPUnit untuk ujian liputan kod dalam projek boleh meningkatkan kualiti kod kami dan mengelakkan beberapa kemungkinan ralat dan kelemahan.

Atas ialah kandungan terperinci Cara menggunakan PHPUnit untuk ujian liputan kod dalam pembangunan PHP. 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