Bonjour,
C'est la première fois que je réalise les tests unitaires sur un projet Symfony, ceci dans le but de mettre en place une usine logicielle via les Actions de GitHub.
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="bin/.phpunit/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php"
>
<php>
<ini name="error_reporting" value="-1" />
<server name="APP_ENV" value="test" force="true" />
<server name="SHELL_VERBOSITY" value="-1" />
<server name="SYMFONY_PHPUNIT_REMOVE" value="" />
<server name="SYMFONY_PHPUNIT_VERSION" value="7.5" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
<exclude>tests/Controller/Controller</exclude>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<!-- <directory>./src/</directory>-->
<!-- <directory suffix=".php">src</directory>-->
<directory>src/Controller</directory>
<directory>src/Data</directory>
<directory>src/Data</directory>
<directory>src/Data</directory>
<directory>src/Entity</directory>
<directory>src/Entity</directory>
<directory>src/Service</directory>
</whitelist>
</filter>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
</phpunit>
Je constate que la couverture de code ne prend pas en compte les objets dans le dossier Controller du projet.
Code Coverage Report:
2020-08-12 10:16:13
Summary:
Classes: 55.56% (5/9)
Methods: 87.18% (34/39)
Lines: 93.67% (74/79)
\App\Data\Data::App\Data\Data\AbstractData
Methods: 100.00% ( 3/ 3) Lines: 100.00% ( 4/ 4)
\App\Data\Data::App\Data\Data\User
Methods: 100.00% ( 7/ 7) Lines: 100.00% ( 14/ 14)
\App\Data\Exception\Email::App\Data\Exception\Email\EmailInvalidFormatException
Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 2/ 2)
\App\Data\ValueObject::App\Data\ValueObject\Email
Methods: 100.00% ( 3/ 3) Lines: 100.00% ( 8/ 8)
\App\Entity\Entity::App\Entity\Entity\AbstractEntity
Methods: 80.00% ( 4/ 5) Lines: 88.89% ( 8/ 9)
\App\Entity\Entity::App\Entity\Entity\User
Methods: 87.50% (14/16) Lines: 93.33% ( 28/ 30)
\App\Service\DTO::App\Service\DTO\UserDTO
Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 10/ 10)
En vous remerciant par avance pour votre aide.
Ce "exclude" concerne un dossier qui contient un objet qui n'est là que pour servir de base aux tests, même en retirant le exclude, les Controller ne sont pas pris en compte (les Controllers sont dans le répertoire tests/Controller).
Il a été mis en place pour éviter un warning de PhpUnit sur la classe ControllerTest qui ne contient aucun test et qui est hérité des TestController.