phpunit/php-code-coverage
phpunit/php-code-coverage collects, processes, and renders PHP code coverage data. Integrate it in test runs to start/stop coverage collection, filter included files, and generate reports such as OpenClover, including from serialized coverage data.
case statements are treated as branch operatorsUnintentionallyCoveredCodeException should report ClassName::methodName when methods are targetedUnintentionallyCoveredCodeException should report ClassName::methodName when methods are targetedUnserializer::unserialize() is too restrictiveSebastianBergmann\CodeCoverage\Report\Facade::summary() method that returns a value object that provides the number of executable lines, the number of executed lines, and line coverage in percent (as well as the respective numbers for branches and paths when available)<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd"> line at the beginning. No document exists at this URL any more, referencing remote DTD URLs is problematic, and no common consumer of Cobertura XML relies on this line.CoversClass does not transitively target traits used by enumerationsCoversClass does not transitively target traits used by enumerationsSebastianBergmann\CodeCoverage\Serialization\Serializer class for serializing SebastianBergmann\CodeCoverage\CodeCoverage objects in a versioned format to a fileSebastianBergmann\CodeCoverage\Serialization\Unserializer class for unserializing SebastianBergmann\CodeCoverage\CodeCoverage objects from a file creating using SebastianBergmann\CodeCoverage\Serialization\SerializerSebastianBergmann\CodeCoverage\Report\Facade class for generating reports from both SebastianBergmann\CodeCoverage\CodeCoverage objects (using Facade::fromObject()) as well as from data unserialized with SebastianBergmann\CodeCoverage\Serialization\Unserializer::unserialize() (using Facade::fromSerializedData())--coverage-php, for example) should use relative pathsSebastianBergmann\CodeCoverage\Report\Facade class must be used for report generationSebastianBergmann\CodeCoverage\Serialization\Serializer is incompatible with the format of the file that was written by SebastianBergmann\CodeCoverage\Report\PHP in the past<build> element and its children of the XML report generated by SebastianBergmann\CodeCoverage\Report\Xml\Facade require the optional arguments to be passed to the process() methodTestSize and TestStatus value objects are now enumerationsSebastianBergmann\CodeCoverage\Report\PHP class was removed, use the new SebastianBergmann\CodeCoverage\Serializer class insteadCachingSourceAnalyser::read() with parallel test runnersdriverIs*() must not assume that CodeCoverage::$driver is setdriverIs*() must not assume that CodeCoverage::$driver is set<source> element for the XML report<test> elements under projects/tests in the XML reports index file__sleep() method (which will be deprecated in PHP 8.5)CodeCoverageMapBuilder::build()<testproject> element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility.file_get_contents() call with is_file() call to avoid problems with error handlers that act on suppressed warningsAttributeParentConnectingVisitorClassesThatExtendClass targetCacheWarmer::warmCache() now returns the number of cache hits and cache missesfn differently than other named argumentsVersion::id()SebastianBergmann\CodeCoverage\Filter::includeUncoveredFiles() and SebastianBergmann\CodeCoverage\Filter::excludeUncoveredFiles() methods are no longer deprecatedfn differently than other named arguments#CoversClass does not target code in parent class(es)Version::id()How can I help you explore Laravel packages today?