Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHPUnit Code Coverage not working and always saying incorrect whitelist config

Ich checked on several sources on the network and also here on stack overflow but couldn't solve it so far.

Heres my config:

<?xml version="1.0" encoding="UTF-8"?>

<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.0/phpunit.xsd"
     backupGlobals="false"
     colors="true"
     bootstrap="../../src/test.bootstrap.php"
     convertErrorsToExceptions="true"
     convertNoticesToExceptions="true"
     convertWarningsToExceptions="true"
     processIsolation="false"
     stopOnError="false"
     stopOnFailure="false"
     stopOnIncomplete="false"
     stopOnSkipped="false"
     stopOnRisky="false"
     verbose="true"
>
<!--printerFile="vendor/whatthejeff/emoji-phpunit-resultprinter/src/Emoji/PHPUnit/ResultPrinter.php"-->
<!--printerClass="Emoji\PHPUnit\ResultPrinter"-->
<php>
    <ini name="error_reporting" value="-1" />
    <server name="KERNEL_DIR" value="src/" />
    <env name="BOOTSTRAP_CLEAR_CACHE_ENV" value="testing"/>
</php>

<loggin>
    <log type="coverage-html" target="build/coverage"/>
    <log type="coverage-clover" target="build/logs/clover.xml"/>
    <log type="coverage-crap4j" target="build/logs/crap4j.xml"/>
    <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
</loggin>

<testsuites>
    <testsuite name="Project Test Suite">
        <directory>src/*/*Bundle/Tests</directory>
        <directory>src/*/Bundle/*Bundle/Tests</directory>
    </testsuite>
</testsuites>

<filter>
    <whitelist>
        <directory>../src</directory>
        <exclude>
            <directory>src/*/*Bundle/Resources</directory>
            <directory>src/*/*Bundle/Tests</directory>
            <directory>src/*/Bundle/*Bundle/Resources</directory>
            <directory>src/*/Bundle/*Bundle/Tests</directory>
        </exclude>
    </whitelist>
</filter>
</phpunit>

Due to the Build Server limitations I need to call phpunit with the following command:

./build/bin/phpunit.phar -c build/config/phpunit.xml --coverage-clover build/logs/clover.xml --coverage-crap4j build/logs/crap4j.xml --coverage-html build/coverage --coverage-xml build/logs/coverage.xml --log-junit build/logs/junit.xml --testdox-html build/testdox/testdox.html  --testdox-xml build/logs/testdox.xml src/ -v

Everything works except code coverage heres the Result Output:

    PHPUnit 6.1.4 by Sebastian Bergmann and contributors.

    Runtime:       PHP 7.1.5-1+0~20170522123046.25+jessie~1.gbpb8686b with Xdebug 2.6.0-dev
    Configuration: /home/testcase/build-directories/build/config/phpunit.xml
    Error:         Incorrect whitelist config, no code coverage will be generated.

    ..................                                                18 / 18 (100%)

    Time: 945 ms, Memory: 6.00MB

    OK (18 tests, 68 assertions)

I'm a little bit irritated as unit tests itself are working. The Reds Message can be ignored (Hope so) as the Redis server is not yet fully configured.

I'm using oh-unit 6.1.4

Please give me a clue where the error is in my configuration

like image 570
Chris West Avatar asked Sep 05 '25 22:09

Chris West


1 Answers

Try to change the whitelist deirectory into you phpunit with this:

<whitelist>
    <directory suffix=".php">./src</directory>
    <exclude>
        <directory>./src/*/*Bundle/Resources</directory>
        <directory>./src/*/*Bundle/Tests</directory>
        <directory>./src/*/Bundle/*Bundle/Resources</directory>
        <directory>./src/*/Bundle/*Bundle/Tests</directory>
    </exclude>
</whitelist>
like image 103
Alessandro Minoccheri Avatar answered Sep 10 '25 04:09

Alessandro Minoccheri