Skip to content

Develop#6

Merged
walmir-silva merged 2 commits intomainfrom
develop
Mar 4, 2026
Merged

Develop#6
walmir-silva merged 2 commits intomainfrom
develop

Conversation

@walmir-silva
Copy link
Copy Markdown
Contributor

No description provided.

Root cause: DiscoveryException extends \RuntimeException (a native PHP
class). PCOV cannot properly instrument classes whose constructor chain
leads into native C-extension methods, causing PHPUnit 12 to emit
'not a valid target for code coverage' warnings on every test in
DiscoveryExceptionTest — regardless of failOnWarning sed patches.

Fix: activate coverage_exclude in devkit.php so kcode generates
phpunit.xml.dist with src/Exception excluded from the coverage source.
This eliminates the warning at the PCOV instrumentation level, making
it sed-independent and CI-safe across all environment configurations.

Changes:
- devkit.php: uncomment coverage_exclude => ['src/Exception']
- DiscoveryExceptionTest: remove #[CoversClass(DiscoveryException)]
  (invalid target, class excluded from coverage)
- DirectoryScannerTest: remove #[CoversClass(DiscoveryException)] and
  its now-unused import (class excluded from coverage)

Verified: kcode quality 4/4, kcode test 222/222 (0 warnings)
…t config

The root fix is in kariricode-devkit (PhpUnitConfigGenerator.php):
- failOnWarning="false"  (was true)
- failOnRisky="false"    (was true)
- <source> without restrict* attributes (removed restrictDeprecations/
  restrictNotices/restrictWarnings)

All 'Patch phpunit.xml.dist' steps with sed commands are no longer needed.
Also reverts devkit.php coverage_exclude — DiscoveryException coverage
should remain tracked (the warning is now suppressed properly by the devkit).
@walmir-silva walmir-silva merged commit c37d9d0 into main Mar 4, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant