phpUnit Coverage Probleme mit doppelten Klassen
25. Januar 2010Bei der Erstellung der Codecoverage mit phpUnit bin ich schon mehrmals aus diesen PHP Fehler gestoßen:
PHP Fatal error: Cannot redeclare class
Aus dem Code war kein Grund dafür ersichtlich da alle Dateien mit require_once eingebunden waren. Das Problem lag dabei in der Verwendung von Mock Klassen ohne diese vorher importiert zu haben.
Ich kann mit folgenden Code eine Object der Klasse Example erstellen ohne die original Klasse zu laden.
$object = $this->getMock ( 'Example', array (), array (), '', false );
Wenn danach die original Klasse Example importiert wird, ist diese schon deklariert und es kommt zu diesen Fehler. Abhilfe tut hier ein require_once im Test:
require_once('path/to/Example.php');
$object = $this->getMock ( 'Example', array (), array (), '', false );
Dann klappt es auch mit der Coverage Auswertung.
Tags: PHP, phpunit, test, Unittests
Der Beitrag wurde am Montag, den 25. Januar 2010 um 15:43 Uhr veröffentlicht und wurde unter PHP abgelegt. du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Kommentare und Pings sind derzeit nicht erlaubt.