Das Problem
Um meine Codequalität zu verbessern, habe ich beschlossen, zu lernen, wie ich meinen Code mithilfe von Unit-Tests anstelle meiner mittelmäßig besten Testlösungen teste.
Ich habe mich entschieden, PHPUnit mit Composer für eine persönliche Bibliothek zu installieren, mit der ich gemeinsame Datenbankfunktionen erreichen kann. Zuerst hatte ich keine Konfigurationsdatei für PHPUnit und als ich Befehle ausführte wie:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Bitte beachten Sie, dass dies ein Terminalbefehl ist, daher habe ich die .php
Erweiterung nicht eingefügt. Der oben erwähnte GeneralStringFunctionsTest ist eigentlich eine GeneralStringFunctionsTest.php
Datei.
Die Ausgabe ist das, was ich erwartet habe:
Zeit: 31 ms, Speicher: 2,75 MB
OK (1 Test, 1 Behauptung)
Ich habe dann versucht, eine Konfigurationsdatei zu verwenden, um die Testsuite automatisch zu laden, anstatt die Datei jedes Mal manuell eingeben zu müssen. Ich habe eine Datei erstellt, die phpunit.xml
in meinem Stammverzeichnis aufgerufen wurde, und Folgendes in die Datei eingegeben: http://pastebin.com/0j0L4WBD :
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Wenn ich jetzt den Befehl ausführe:
phpunit
Ich erhalte folgende Ausgabe:
PHPUnit 4.5.0 von Sebastian Bergmann und Mitwirkenden.
Konfiguration aus /Users/muyiwa/Projects/DatabaseHelper/phpunit.xml gelesen
Zeit: 16 ms, Speicher: 1,50 MB
Keine Tests ausgeführt!
Falls es hilfreich ist, sieht meine Verzeichnisstruktur wie folgt aus:
src -
Tests des Verzeichnisses der obersten Ebene (mit meinem gesamten Quellcode) - Verzeichnis des Verzeichnisses der obersten Ebene (mit allen meinen Tests, die genauso strukturiert sind wie mein Ordner src )
- Composer-Dateien von Drittanbietern
Ich habe auch die Composer JSON- und Lock-Datei sowie die PHPUNIT-XML-Datei in der obersten Ebene als Dateien.
Dinge, die ich versucht habe
- Ändern Sie das Verzeichnis in
phpunit.xml
zutests/GeneralStringFunctions
- Ändern Sie das Verzeichnis in
phpunit.xml
zu./tests
- Verschieben Sie die
phpunit.xml
Datei in dastests
Verzeichnis und ändern Sie dann das Verzeichnis./
anstelle vontests
. - Hinzufügen eines Suffix-Attributs zum Verzeichnis-Tag in
phpunit.xml
, um "Tests" als explizites Suffix anzugeben.
tests/GeneralStringFunctions/GeneralStringFunctionsTest
ein Ordner oder ein Dateiname?