En nuestro proyecto, estamos ejecutando pruebas PHPUnit que usa Selenium y Curl para abrir páginas en un servidor de desarrollo diferente. El servidor B tiene un servidor Apache ejecutando el servidor del sitio web. El servidor A inicia el trabajo de prueba sincronizando (Rsync) los archivos del proyecto al servidor de desarrollo B, por lo que los archivos del proyecto son idénticos en ambos servidores.Cobertura del código remoto que se recopila en PHP
¿Qué posibilidades hay de recopilar remotamente estadísticas de cobertura de código en PHP?
Ya estamos utilizando Xdebug para recoger la cobertura de código en la unidad de pruebas que se ejecutan localmente en el servidor A (PHPUnit utiliza archivos directamente el proyecto y, por consiguiente start/stop collecting code coverage report)
Actualización:
en el servidor B , el sitio web es renderizado por una instancia de PHP ejecutada por Apache. Al almorzar las pruebas usando Selenium/Curl la instancia de PHP en el servidor A, se usa la versión de línea de comando. Esa instancia no puede perfilar el ejemplo Apache PHP que se ejecuta en el servidor B.
Al ejecutar pruebas unitarias (no usar otro servidor y no el uso de selenio/Curl), se utiliza un comando como este:
phpunit --coverage-html ./results/codecoverage/ ATestFile.php
Esto genera un informe de cobertura de código para la prueba en "ATestFile.php" utilizando Xdebug en PHP Cli.
¿Puede ser más específico sobre los problemas que ha tropezado hasta ahora? Es de suponer que también puede iniciar XDebug en el Servidor B, ¿cuál es el problema? –
¿Respondió mi actualización algunas de sus preguntas? El problema es generar informes de cobertura de código en el servidor A cuando es el servidor B el que ejecuta la instancia de PHP utilizando los archivos de base de código/prosject. – HNygard
Entonces, ¿el punto es que no desea ejecutar PHPUnit en el servidor B, porque el servidor A realmente está haciendo todas las pruebas? XDebug aún se ejecutará en el servidor B, simplemente no debes usar PHPUnit allí. Creo que esto te expone a XDebug "en bruto" y tendrás que descubrir cómo PHPUnit recopila sus datos desde allí.Si está interesado, puedo ofrecerle una solución que no sea XDebug que le permitirá recopilar los datos de cobertura de B (y del sistema A si lo desea). –