dsf4s5787 2013-05-20 20:06
浏览 146
已采纳

PHPUnit和PHP_CodeCoverage:为整个代码库启用PHP_CodeCoverage

All of my code base is in one folder and it's sub-directories, all of my tests are in another folder and it's sub-directories. When I run PHPUnit, I point it to the test folder, and all Files in my test folder and all it's sub-directories that end in Test.php are executed. This all works fine.

I now want to enable PHP_CodeCoverage for all of my code base, including files for which I don't have test files written yet.

I am able to manually enable PHP_CodeCoverage inside each test file by doing what the GitHub documentation advises:

inside my test file I include the follwoing:

require 'PHP/CodeCoverage/Autoload.php';

$coverage = new PHP_CodeCoverage;
$coverage->start('<name of test>');

// ...

$coverage->stop();

$writer = new PHP_CodeCoverage_Report_Clover;
$writer->process($coverage, '/tmp/clover.xml');

$writer = new PHP_CodeCoverage_Report_HTML;
$writer->process($coverage, '/tmp/code-coverage-report');

How do I enable it for my entire code base? I can't find any documentation for that case.

  • 写回答

1条回答 默认 最新

  • dsij89625 2013-05-20 21:34
    关注

    I figured it out myself:

    When running phpUnit from the command line, add the following switch anywhere before the directory on which you are running phpUnit: --coverage-html /your/coverage/directory/goes/here

    Here is an example of the complete command:

    $phpunit --colors --coverage-html /your/coverage/directory/goes/here /my/code/base/dir

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?