Very thick question, but is there any way to print your own debug messages to the console in Codeception? I mean messages that have nothing to do with assertions, purely for debugging the tests themselves (e.g. like you would var_dump()
a variable in any regular PHP website)
I have already tried var_dump()
, echo
and print
but to no avail. Using WebDebug
's makeAResponseDump()
doesn't produce the required results neither, I just want to be able to see my variable's content without having to run a debugger like xdebug.
See Debugging which says
You may print any information inside a test using the codecept_debug function.
And I'm using it in my *Cept class:
codecept_debug($myVar);
Your debug output is only visible when you run with --debug (-v doesn't show it, but -vv and -vvv do):
codecept run --debug
And the output looked like:
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();
and run Codeception with --debug
flag.
I seem to have found a way around the issue by using a helper class:
class WebHelper extends \Codeception\Module
{
public function seeMyVar($var){
$this->debug($var);
}
}
and calling the class as such:
$foo = array('one','two');
$I->seeMyVar($foo);
then I get the debug output I'm looking for
I see my var "lambda function"
Array
(
[0] => one
[1] => two
)
I will accept this as a temporary solution however I would like to keep my assertions clean and not clutter them with var_dumps upgraded to test functions, so if anyone has a conceptually correct solution, please submit
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With