php - Impresión de salida de depuración en consola en Codeception
debugging console (6)
De manera predeterminada, Codeception dice que hubo un error pero no lo muestra en detalle. Sin embargo, de acuerdo con esta entrada del blog, agregando --debug muestra los errores en detalle.
codecept run --debug
Pregunta muy gruesa, pero ¿hay alguna forma de imprimir sus propios mensajes de depuración a la consola en Codeception? Me refiero a los mensajes que no tienen nada que ver con las aserciones, simplemente para depurar las pruebas en sí (por ejemplo, como lo haría var_dump()
una variable en cualquier sitio web regular de PHP)
Ya he intentado var_dump()
, echo
e print
pero fue en vano. Usar WebDebug
makeAResponseDump()
tampoco produce los resultados requeridos, solo quiero poder ver el contenido de mi variable sin tener que ejecutar un depurador como xdebug .
La versión corta sería codecept run tests/acceptance/SomeCest.php -d
-d le mostrará pasos y depuración
O puede usar los comandos de control de verbosidad como:
codecept run -vvv
donde cada v
aumenta la verbosidad de la salida (muy silencioso por defecto).
Parece que he encontrado una forma de resolver el problema mediante el uso de una clase de ayuda:
class WebHelper extends /Codeception/Module
{
public function seeMyVar($var){
$this->debug($var);
}
}
y llamando a la clase como tal:
$foo = array(''one'',''two'');
$I->seeMyVar($foo);
entonces obtengo el resultado de depuración que estoy buscando
I see my var "lambda function"
Array
(
[0] => one
[1] => two
)
Aceptaré esto como una solución temporal; sin embargo, me gustaría mantener mis afirmaciones limpias y no saturarlas con var_dumps actualizadas para probar funciones, por lo que si alguien tiene una solución conceptualmente correcta, envíela.
Ver la Debugging que dice
Puede imprimir cualquier información dentro de una prueba usando la función codecept_debug.
Y lo estoy usando en mi clase * Cept :
codecept_debug($myVar);
Su salida de depuración solo está visible cuando se ejecuta con --debug (-v no lo muestra, pero -vv y -vvv do):
codecept run --debug
Y la salida se veía así:
Validate MyEntity table insert (MyCept)
Scenario:
* I persist entity "AppBundle/Entity/MyEntity"
AppBundle/Entity/MyEntity Object
(
[Id:AppBundle/Entity/MyEntity:private] => 1
[Description:AppBundle/Entity/MyEntity:private] => Description
)
PASSED
/Codeception/Util/Debug::debug($this->em);die();
y ejecuta Codeception con --debug
flag.