非常厚的问题,但是有什么方法可以在Codeception中将自己的调试消息打印到控制台?我的意思是什么都没有做断言,纯粹是为了调试测试本身的信息(例如,就像您var_dump()
在任何普通的PHP网站的变量)在Codeception中将调试输出打印到控制台
我已经尝试var_dump()
,echo
和print
但无济于事。使用WebDebug
的makeAResponseDump()
不会产生所需的结果,我只是希望能够看到我的变量的内容,而无需运行调试器,如xdebug。
非常厚的问题,但是有什么方法可以在Codeception中将自己的调试消息打印到控制台?我的意思是什么都没有做断言,纯粹是为了调试测试本身的信息(例如,就像您var_dump()
在任何普通的PHP网站的变量)在Codeception中将调试输出打印到控制台
我已经尝试var_dump()
,echo
和print
但无济于事。使用WebDebug
的makeAResponseDump()
不会产生所需的结果,我只是希望能够看到我的变量的内容,而无需运行调试器,如xdebug。
我似乎通过使用一个辅助类已经找到了解决这一问题的办法:
class WebHelper extends \Codeception\Module
{
public function seeMyVar($var){
$this->debug($var);
}
}
,并调用类这样:
$foo = array('one','two');
$I->seeMyVar($foo);
然后我得到调试输出我寻找
I see my var "lambda function"
Array
(
[0] => one
[1] => two
)
我会接受这是一个临时的解决方案,但是我想保持我的断言干净并且不会将var_dumps混淆为已升级到测试函数,因此如果任何人有一个概念上正确的解决方案,请提交
默认情况下Codeception说有错误,但没有详细显示它。但根据this blog post加入--debug详细显示错误。
codecept run --debug
\Codeception\Util\Debug::debug($this->em);die();
与--debug
标志运行Codeception。
调试方法并不重要。你可以使用'var_dump()'。如果你运行** phpunit **测试,甚至** - 调试**是没有必要的。 – coviex
或者你可以使用冗长控制像命令:
codecept run -vvv
每个v
增加输出的详细程度(默认情况下很无语)。
见它说
您可以打印使用codecept_debug功能测试中的任何信息。
而且我用它在我的* CEPT类:当你与--debug运行(-v不显示它
codecept_debug($myVar);
你调试输出仅仅是可见的,但-vv和-vvv做):
codecept run --debug
和输出看起来像:
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
短版将 codecept run tests/acceptance/SomeCest.php -d
-d会告诉你的步骤和调试
我开始觉得我是一个厚一点的没有看到一个明显的方式做到这一点。感谢您分享您的解决方案! –
为什么不直接调用'var_dump','print_r'或'print'?它适用于'tryToTest'内的我 – pymarco
由于上述两种方法都不能在我的测试中使用,可能现在有一个更新的版本,因为原来的文章使它适用于您? –