Tengo un problema que no pude encontrar la solución en Google. Cuando ejecuto mis pruebas unitarias con PHPUnit y Xdebug, me gustaría hacer una cobertura de código.
Sin embargo, cuando hago eso, me sale este error:
PHPUnit\Framework\Exception: Fatal error: Uncaught SebastianBergmann\CodeCoverage\NoCodeCoverageDriverAvailableException: No code coverage driver available in /Users/theobenoit/Desktop/Antipode.nosync/Sites/wp-framework-core/vendor/phpunit/php-code-coverage/src/Driver/Selector.php:53 ├ Stack trace: ├ #0 Standard input code(43): SebastianBergmann\CodeCoverage\Driver\Selector->forLineCoverage(Object(SebastianBergmann\CodeCoverage\Filter)) ├ #1 Standard input code(123): __phpunit_run_isolated_test() ├ #2 {main} ├ thrown in /Users/theobenoit/Desktop/Antipode.nosync/Sites/wp-framework-core/vendor/phpunit/php-code-coverage/src/Driver/Selector.php on line 53Me di cuenta de que esto se debe a que en algunas de mis pruebas aparece esto en la parte superior:
/** * @runTestsInSeparateProcesses * @preserveGlobalState disabled */ Cuando @runTestsInSeparateProcesses , todo funciona bien, pero hay problemas porque me burlo de las funciones.
Si alguien ha tenido este problema alguna vez.
Esto es probable porque con runTestsInSeparateProcesses , PHPUnit inicia un nuevo proceso de PHP para cada prueba. Y parece que lo hace sin Xdebug cargado.
El PHP que se inicia para cada prueba debe ser el mismo con el que originalmente inició PHPUnit. ¿Quizás hay un binario PHP diferente primero en la RUTA?
Si ese es el caso, la forma de resolverlo es asegurarse de que el PHP "correcto" esté primero en la PATH .
Podría solucionar el mismo problema al deshabilitar la interrupción forzada cuando no hay asignaciones, una configuración en el IDE en la configuración de xdebug.