/ / Code Coverage scheitert mit PHPUnit und dem Zend Framework - zend-framework, code-coverage, phpunit, xdebug, zend-test

Code Coverage scheitert mit PHPUnit und dem Zend Framework - zend-framework, code-coverage, phpunit, xdebug, zend-test

Ich habe einige Probleme mit Code-Coverage-Berichten in PHPunit und dem Zend-Framework. Wenn ich einen phpunit-Test durchführe, schlägt die Code-Coverage fehl und gibt die folgende Nachricht zurück:


PHPUnit 3.4.15 by Sebastian Bergmann.

I.......III.I................................IIIIIIIIIIIIIII 60 / 93
IIII....I....I..II..II.....IIIIII

Time: 4 seconds, Memory: 22.25Mb

OK, but incomplete or skipped tests!
Tests: 93, Assertions: 174, Incomplete: 36.

Generating code coverage report, this may take a moment.PHP Fatal error:  Cannot redeclare class Klunde_Auth in /Users/kristianlunde/workspaces/private/klunde/Library/Klunde/Auth.php on line 9

Fatal error: Cannot redeclare class Klunde_Auth in /Users/kristianlunde/workspaces/private/klunde/Library/Klunde/Auth.php on line 9

Meine phpunit.xml-Datei sieht folgendermaßen aus:


<phpunit bootstrap="./application/bootstrap.php" colors="true">
<testsuite name="Klunde">
<directory>./application/</directory>
<directory>./Library/Klunde</directory>
</testsuite>

<filter>
<whitelist>
<directory suffix=".php">../application</directory>
<directory suffix=".php">../Library/Klunde</directory>
<exclude>
<directory suffix=".phtml">../application/</directory>
<file>../application/Bootstrap.php</file>
<file>../application/controllers/ErrorController.php</file>
</exclude>
</whitelist>
</filter>

<logging>
<log type="coverage-html" target="./log/report" charset="utf-8" yui="true"
highlight="true" lowUpperBound="50" highLowerBound="80" />

<log type="testdox-html" target="./log/testdox.html" />
</logging>
</phpunit>

Ich habe ein

var_dump(get_included_files());

an der Spitze der Auth-Datei und es hat versucht, die Datei mehr als einmal einzuschließen, bevor es fehlschlug.

Ich habe auch versucht, die Datei Klunde_Auth.php nur zu entfernen, um zu sehen, ob es ein Ein-Datei-Problem war, aber dann wird der Fehler bei der nächsten Datei im Verzeichnis Library / Klunde ausgelöst.

Ich benutze OSX Snow Leopard mit PHP 5.3.1, XDebug 2.1.0beta3 und PHPUnit 3.4.15

Alle Hilfe und Unterstützung wird sehr geschätzt.

Vielen Dank.

Antworten:

2 für die Antwort № 1

füge hinzu ein debug_print_backtrace () Rufen Sie den Anfang Ihrer Klude_Auth.php auf, bevor die Klassendeklaration selbst beginnt.

Führen Sie die Testsuite dann erneut aus. Nun sehen Sie jedes Mal, wenn die Datei enthalten ist, das gesamte Backtrace. Dies sollte Ihnen helfen, herauszufinden, wo / von wo es zweimal aufgenommen wird.