php - ¿Cómo configurar Codeception con cobertura de código remoto?
code-coverage remote-server (2)
- Tengo dos reposiciones en mi máquina
- API
- Codeception repo que prueba API
En el repositorio API he añadido codeception + c3
"require-dev": {
"codeception/codeception": "2.*",
"codeception/c3": "2.*",
También he incluido c3.php dentro de index.php, pero al intentar probarlo con --coverage tengo este error
[PHPUnit_Framework_Exception] file_get_contents ( http://local.api.codeception.com/c3/report/clear ): fai condujo a una secuencia abierta: ¡Error en la solicitud HTTP! HTTP / 1.1 500 Error interno del servidor
¿Hay CUALQUIER ejemplo en línea de codecepción remota con Codeception?
Aquí está mi configuración para el codecoverage remoto con Codeception ( Proyecto en GitHub ).
Pasos para ejecutar la colección remota de codecoverage
1. Asegúrese de que xdebug esté instalado y habilitado.
2. Configurar la codecepción.
Archivo codeception.yml
( GitHub ):
coverage:
enabled: true
c3_url: ''http://%SERVICE_HOST%/index-test.php/''
include:
- web/*
- config/*
- src/*
3. Habilite la cobertura para los trajes que necesita.
Archivo acceptance.suite.yml
( GitHub ):
coverage:
remote: true
En mi ejemplo está habilitado solo para pruebas de aceptación.
4. Incluya el archivo c3.php
en su aplicación bootstrap.
Aplicación bootstrap file index-test.php
( GitHub ):
// Start the remote code coverage collection.
require_once __DIR__.''/../c3.php'';
// autoloader, application running and etc
// ...
5. Ejecutar la cobertura.
$ vendor/bin/codecept run --coverage --coverage-html
Por defecto, puede encontrar sus informes en el directorio tests/_output
.
Posibles problemas
1. El directorio de salida no se puede escribir ( tests/_output
).
$ chmod 777 tests/_output
2. Codecoverage remoto no impreso en la consola.
No debe ser impreso. De la documentación:
coverage: remote: true
En este caso, los resultados de la cobertura de código remota no se fusionarán con los locales, si esta opción está habilitada. La fusión solo es posible en caso de que los archivos remotos y locales tengan la misma ruta. Pero en caso de ejecutar pruebas en un servidor remoto, no estamos seguros de ello.
3. Algún otro error.
Intenta habilitar la depuración . Si la depuración está habilitada, puede obtener su informe o borrarlo.
curl -o codecoverage.tar "http://localhost:8080/index-test.php/c3/report/html"
Fin
A veces no es una tarea trivial. Así que espero que esto ayude!
Ok, fue una pesadilla de configuración, pero lo he arreglado
github.com/Horki/remotecoverage es ejemplo