Skip to content

No code coverage whereas it should have some #21

Description

@b2p-fred

In a fresh Docker container (alpine linux php-fpm 8.0) I executed the following commands :

# Install required packages
$ composer require --dev matthiasnoback/live-code-coverage
$ composer require --dev phpunit/phpcov

# Modify the main controller (see later)

# Run the behat tests
$ ./vendor/bin/behat features/core/Anonymous.feature

# List the coverage files
$ ls -al artifacts/live-coverage/
total 172
drwxrwxrwx 2 me          10000 20480 Feb 16 13:14 .
drwxr-xr-x 5 me          10000  4096 Feb 16 13:02 ..
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c22603b4.02206227.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c2308d66.84608413.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c23ad1d7.38233268.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c23f6135.11838277.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c2442986.25039401.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c248c4e4.49035877.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c251fe25.43826291.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c256b545.73725875.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c2607088.83906599.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c2655775.81697227.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c269e893.35438473.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c2732671.95159334.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c278d602.21566494.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c27edf26.20185227.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c283a2b7.53465292.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c28d9b31.25165564.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c291d979.48545702.cov
-rw-rw-rw- 1 www-data www-data  5605 Feb 16 13:14 20220216131442620cf8c29b95b1.54902986.cov

# Merge the coverage results
$ ./vendor/bin/phpcov merge --text coverage.txt ./artifacts/live-coverage/
phpcov 8.2.0 by Sebastian Bergmann.

Generating code coverage report in text format ... done

# View the coverage results
$ cat coverage.txt 

Code Coverage Report:     
  2022-02-16 13:15:40     
                          
 Summary:                 
  Classes:  0.00% (0/54)  
  Methods:  0.00% (0/419) 
  Lines:    0.00% (0/1515)

With this procedure the tests results show no coverage at all !

Note that the problem that I encountered in #20 disappeared!

The application main controller:

<?php

use App\Kernel;
use LiveCodeCoverage\LiveCodeCoverage;

require_once dirname(__DIR__).'/vendor/autoload_runtime.php';

return function (array $context) {
    $shutDownCodeCoverage = LiveCodeCoverage::bootstrap(
        true,
        __DIR__.'/../artifacts/live-coverage',
        __DIR__.'/../phpunit.xml.dist'
    );

    // Run your web application now...
    $kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);

    // This will save and store collected coverage data:
    $shutDownCodeCoverage();

    return $kernel;
};

One of the .cov produced files (I do not know if it may help?) :

return \unserialize(<<<'END_OF_COVERAGE_SERIALIZATION'
O:43:"SebastianBergmann\CodeCoverage\CodeCoverage":15:{s:51:" SebastianBergmann\CodeCoverage\CodeCoverage driver";O:48:"SebastianBergmann\CodeCoverage\Driver\PcovDriver":3:{s:56:" SebastianBergmann\CodeCoverage\Driver\PcovDriver filter";O:37:"SebastianBergmann\CodeCoverage\Filter":2:{s:44:" SebastianBergmann\CodeCoverage\Filter files";a:63:{s:40:"/var/www/src/Action/GetVersionAction.php";b:1;s:50:"/var/www/src/Command/DriverHistoryPurgeCommand.php";b:1;s:43:"/var/www/src/Command/UsersCreateCommand.php";b:1;s:43:"/var/www/src/Command/UsersDeleteCommand.php";b:1;s:41:"/var/www/src/Command/UsersListCommand.php";b:1;s:46:"/var/www/src/Controller/DocumentController.php";b:1;s:44:"/var/www/src/Controller/DriverController.php";b:1;s:42:"/var/www/src/Controller/UserController.php";b:1;s:40:"/var/www/src/DBAL/Types/BaseEnumType.php";b:1;s:39:"/var/www/src/DBAL/Types/ContactType.php";b:1;s:46:"/var/www/src/DBAL/Types/DocumentStatusType.php";b:1;s:40:"/var/www/src/DBAL/Types/DocumentType.php";b:1;s:43:"/var/www/src/DBAL/Types/HumanGenderType.php";b:1;s:40:"/var/www/src/DBAL/Types/LanguageType.php";b:1;s:44:"/var/www/src/DBAL/Types/NotificationType.php";b:1;s:41:"/var/www/src/DataFixtures/AppFixtures.php";b:1;s:46:"/var/www/src/Doctrine/ContactPhoneListener.php";b:1;s:47:"/var/www/src/Doctrine/DocumentAnnexListener.php";b:1;s:50:"/var/www/src/Doctrine/DocumentReceivedListener.php";b:1;s:48:"/var/www/src/Doctrine/DocumentStatusListener.php";b:1;s:45:"/var/www/src/Doctrine/DriverPhoneListener.php";b:1;s:46:"/var/www/src/Doctrine/HashPasswordListener.php";b:1;s:31:"/var/www/src/Entity/Address.php";b:1;s:31:"/var/www/src/Entity/Contact.php";b:1;s:32:"/var/www/src/Entity/Customer.php";b:1;s:32:"/var/www/src/Entity/Document.php";b:1;s:39:"/var/www/src/Entity/DocumentHistory.php";b:1;s:39:"/var/www/src/Entity/DocumentVersion.php";b:1;s:30:"/var/www/src/Entity/Driver.php";b:1;s:37:"/var/www/src/Entity/DriverHistory.php";b:1;s:36:"/var/www/src/Entity/Notification.php";b:1;s:28:"/var/www/src/Entity/Site.php";b:1;s:27:"/var/www/src/Entity/Tag.php";b:1;s:49:"/var/www/src/Entity/Traits/SenderReceiverName.php";b:1;s:28:"/var/www/src/Entity/User.php";b:1;s:45:"/var/www/src/EventListener/KernelListener.php";b:1;s:44:"/var/www/src/Filter/DocumentCustomFilter.php";b:1;s:51:"/var/www/src/Filter/DocumentHistoryCustomFilter.php";b:1;s:40:"/var/www/src/Filter/SiteCustomFilter.php";b:1;s:34:"/var/www/src/Filter/UuidFilter.php";b:1;s:43:"/var/www/src/Handler/UserMessageHandler.php";b:1;s:23:"/var/www/src/Kernel.php";b:1;s:46:"/var/www/src/Manager/ApiInformationManager.php";b:1;s:36:"/var/www/src/Message/UserMessage.php";b:1;s:37:"/var/www/src/OpenApi/JwtDecorator.php";b:1;s:41:"/var/www/src/OpenApi/VersionDecorator.php";b:1;s:45:"/var/www/src/Repository/AddressRepository.php";b:1;s:45:"/var/www/src/Repository/ContactRepository.php";b:1;s:46:"/var/www/src/Repository/CustomerRepository.php";b:1;s:53:"/var/www/src/Repository/DocumentHistoryRepository.php";b:1;s:46:"/var/www/src/Repository/DocumentRepository.php";b:1;s:53:"/var/www/src/Repository/DocumentVersionRepository.php";b:1;s:51:"/var/www/src/Repository/DriverHistoryRepository.php";b:1;s:44:"/var/www/src/Repository/DriverRepository.php";b:1;s:50:"/var/www/src/Repository/NotificationRepository.php";b:1;s:42:"/var/www/src/Repository/SiteRepository.php";b:1;s:41:"/var/www/src/Repository/TagRepository.php";b:1;s:42:"/var/www/src/Repository/UserRepository.php";b:1;s:45:"/var/www/src/Security/ApiKeyAuthenticator.php";b:1;s:47:"/var/www/src/Security/ApiLoginAuthenticator.php";b:1;s:35:"/var/www/src/Security/OAuthUser.php";b:1;s:42:"/var/www/src/Service/FileUploadService.php";b:1;s:35:"/var/www/src/Utils/HydrateTrait.php";b:1;}s:50:" SebastianBergmann\CodeCoverage\Filter isFileCache";a:0:{}}s:74:" SebastianBergmann\CodeCoverage\Driver\Driver collectBranchAndPathCoverage";b:0;s:60:" SebastianBergmann\CodeCoverage\Driver\Driver detectDeadCode";b:0;}s:51:" SebastianBergmann\CodeCoverage\CodeCoverage filter";r:3;s:51:" SebastianBergmann\CodeCoverage\CodeCoverage wizard";O:46:"SebastianBergmann\CodeUnitReverseLookup\Wizard":3:{s:59:" SebastianBergmann\CodeUnitReverseLookup\Wizard lookupTable";a:0:{}s:64:" SebastianBergmann\CodeUnitReverseLookup\Wizard processedClasses";a:0:{}s:66:" SebastianBergmann\CodeUnitReverseLookup\Wizard processedFunctions";a:0:{}}s:79:" SebastianBergmann\CodeCoverage\CodeCoverage checkForUnintentionallyCoveredCode";b:0;s:66:" SebastianBergmann\CodeCoverage\CodeCoverage includeUncoveredFiles";b:0;s:66:" SebastianBergmann\CodeCoverage\CodeCoverage processUncoveredFiles";b:1;s:65:" SebastianBergmann\CodeCoverage\CodeCoverage ignoreDeprecatedCode";b:0;s:54:" SebastianBergmann\CodeCoverage\CodeCoverage currentId";N;s:49:" SebastianBergmann\CodeCoverage\CodeCoverage data";O:56:"SebastianBergmann\CodeCoverage\ProcessedCodeCoverageData":2:{s:70:" SebastianBergmann\CodeCoverage\ProcessedCodeCoverageData lineCoverage";a:0:{}s:74:" SebastianBergmann\CodeCoverage\ProcessedCodeCoverageData functionCoverage";a:0:{}}s:74:" SebastianBergmann\CodeCoverage\CodeCoverage useAnnotationsForIgnoringCode";b:1;s:50:" SebastianBergmann\CodeCoverage\CodeCoverage tests";a:0:{}s:101:" SebastianBergmann\CodeCoverage\CodeCoverage parentClassesExcludedFromUnintentionallyCoveredCodeCheck";a:0:{}s:64:" SebastianBergmann\CodeCoverage\CodeCoverage coveredFileAnalyser";N;s:66:" SebastianBergmann\CodeCoverage\CodeCoverage uncoveredFileAnalyser";N;s:59:" SebastianBergmann\CodeCoverage\CodeCoverage cacheDirectory";N;}
END_OF_COVERAGE_SERIALIZATION
);

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions