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
Veröffentlicht in PHP | Kommentare deaktiviert

