Heim Backend-Entwicklung PHP-Tutorial So verwenden Sie PHPUnit zum Testen der Codeabdeckung in der PHP-Entwicklung

So verwenden Sie PHPUnit zum Testen der Codeabdeckung in der PHP-Entwicklung

Jun 27, 2023 am 09:24 AM
php开发 phpunit 代码覆盖率

Für PHP-Entwickler ist die Verwendung von PHPUnit zum Testen der Codeabdeckung eine sehr wichtige Aufgabe. Mithilfe von Codeabdeckungstests können Entwickler überprüfen, ob es ungetestete Teile des von ihnen geschriebenen Codes gibt und ob die Testabdeckung hoch genug ist. In diesem Artikel wird erläutert, wie Sie PHPUnit zum Testen der Codeabdeckung verwenden.

Zuerst müssen wir PHPUnit installieren. Mit Composer kann PHPUnit installiert werden:

composer require --dev phpunit/phpunit
Nach dem Login kopieren

Nachdem die Installation abgeschlossen ist, können wir im Terminal den folgenden Befehl ausführen, um zu überprüfen, ob PHPUnit erfolgreich installiert wurde:

php vendor/bin/phpunit --version
Nach dem Login kopieren

Als nächstes müssen wir PHPUnit konfigurieren, bevor wir den Test ausführen. Erstellen Sie eine phpunit.xml-Datei im Stammverzeichnis des Projekts mit folgendem Inhalt:

<?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>
Nach dem Login kopieren

Diese Konfigurationsdatei teilt PHPUnit mit, welche Dateien beim Ausführen von Tests einbezogen werden sollen, und konfiguriert außerdem einige Fehler während Testläufen.

Bevor wir den Testcode schreiben, schauen wir uns unten ein einfaches Beispiel an:

<?php

class Foo
{
    public function bar()
    {
        return true;
    }
}
Nach dem Login kopieren

Dies ist eine sehr einfache PHP-Klasse, die eine öffentliche Methode namens bar() enthält, die einen booleschen Wert zurückgibt. Jetzt müssen wir einen Test für diese Klasse schreiben, um sicherzustellen, dass sie sich wie erwartet verhält. Erstellen Sie im Testverzeichnis eine Testdatei mit dem Namen FooTest.php mit folgendem Inhalt:

<?php
    
use PHPUnitFrameworkTestCase;

class FooTest extends TestCase
{
    /** @test */
    public function it_should_return_true()
    {
        $foo = new Foo;
        $this->assertTrue($foo->bar());
    }
}
Nach dem Login kopieren

Dieser Test ist sehr einfach. Wir instanziieren die Klasse Foo und stellen sicher, dass ihre Methode bar() true zurückgibt. Jetzt können wir die Tests ausführen und den von PHPUnit generierten Abdeckungsbericht anzeigen. Führen Sie den folgenden Befehl im Terminal aus:

php vendor/bin/phpunit --coverage-html coverage
Nach dem Login kopieren

Dieser Befehl generiert einen HTML-Abdeckungsbericht und speichert ihn im Abdeckungsverzeichnis im Projektstammverzeichnis. Öffnen Sie den Bericht und Sie können sehen, dass die Codeabdeckung der Klasse Foo 100 % beträgt. Das bedeutet, dass der von uns geschriebene Test den gesamten Code der Klasse Foo abgedeckt hat.

Im Allgemeinen ist PHPUnit ein sehr leistungsfähiges Testtool, das uns beim Schreiben von hochwertigem PHP-Code helfen kann. Das Testen der Codeabdeckung ist eine Schlüsselfunktion von PHPUnit und stellt sicher, dass die von uns geschriebenen Tests jeden Teil unseres Codes abdecken. Die Verwendung von PHPUnit zum Testen der Codeabdeckung im Projekt kann die Qualität unseres Codes erheblich verbessern und einige potenzielle Fehler und Lücken vermeiden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHPUnit zum Testen der Codeabdeckung in der PHP-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie verwende ich Memcache in der PHP-Entwicklung? Wie verwende ich Memcache in der PHP-Entwicklung? Nov 07, 2023 pm 12:49 PM

Wie verwende ich Memcache in der PHP-Entwicklung?

So verbessern Sie das Suchmaschinen-Ranking mit der PHP-Cache-Entwicklung So verbessern Sie das Suchmaschinen-Ranking mit der PHP-Cache-Entwicklung Nov 07, 2023 pm 12:56 PM

So verbessern Sie das Suchmaschinen-Ranking mit der PHP-Cache-Entwicklung

Wie entwickle ich mit PHP die Mitgliederpunktefunktion des Lebensmitteleinkaufssystems? Wie entwickle ich mit PHP die Mitgliederpunktefunktion des Lebensmitteleinkaufssystems? Nov 01, 2023 am 10:30 AM

Wie entwickle ich mit PHP die Mitgliederpunktefunktion des Lebensmitteleinkaufssystems?

Wie man mit PHP eine Online-Nachhilfeplattform entwickelt Wie man mit PHP eine Online-Nachhilfeplattform entwickelt Oct 28, 2023 am 09:01 AM

Wie man mit PHP eine Online-Nachhilfeplattform entwickelt

PHP Jenkins vs. PHPUnit: Unit-Test von PHP-Code PHP Jenkins vs. PHPUnit: Unit-Test von PHP-Code Mar 09, 2024 am 10:10 AM

PHP Jenkins vs. PHPUnit: Unit-Test von PHP-Code

Wie implementiert man Versionskontrolle und Code-Zusammenarbeit in der PHP-Entwicklung? Wie implementiert man Versionskontrolle und Code-Zusammenarbeit in der PHP-Entwicklung? Nov 02, 2023 pm 01:35 PM

Wie implementiert man Versionskontrolle und Code-Zusammenarbeit in der PHP-Entwicklung?

Wie entwickle ich mit PHP die Coupon-Funktion des Bestellsystems? Wie entwickle ich mit PHP die Coupon-Funktion des Bestellsystems? Nov 01, 2023 pm 04:41 PM

Wie entwickle ich mit PHP die Coupon-Funktion des Bestellsystems?

Mit welcher Methode kann die Funktion zur Nachverfolgung von Takeout-Bestellungen des PHP-Entwicklungsbestellsystems implementiert werden? Mit welcher Methode kann die Funktion zur Nachverfolgung von Takeout-Bestellungen des PHP-Entwicklungsbestellsystems implementiert werden? Nov 01, 2023 am 08:58 AM

Mit welcher Methode kann die Funktion zur Nachverfolgung von Takeout-Bestellungen des PHP-Entwicklungsbestellsystems implementiert werden?

See all articles