3

I have some issues with code coverage reports in PHPunit and the zend framework. Whenever I run a phpunit test the code coverage fails returning the following message:


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

My phpunit.xml file looks like this:


<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>

I did a

var_dump(get_included_files());

at the top of the Auth file and it did try to include the file more than once before it failed.

I have also tried to remove the Klunde_Auth.php file just to see if it was a one file issue, but then the error is triggered on the next file in the Library/Klunde directory.

I am running OSX Snow Leopard, with PHP 5.3.1, XDebug 2.1.0beta3 and PHPUnit 3.4.15

All help and assistance will be highly appreciated.

Thanks.

2
  • Bump! Has this been resolved? If so, I'm curious of the solution. Commented Jul 5, 2011 at 17:26
  • @ Janis, I did resolve it in some way, but I really can't remember what I had to do to resolve it. Are you experiencing the same issues? I can have a look at my solution if you want. Commented Sep 12, 2011 at 4:44

1 Answer 1

2

add a debug_print_backtrace() call to the top of your Klunde_Auth.php, before the class declaration itself starts.

Then run the testsuite again, now you will see the whole backtrace each time the file is included, this should help you to figure out what/from where it is being included twice.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.