Печать вывода отладки на консоль в Codeception
Очень толстый вопрос, но есть ли способ распечатать собственные сообщения отладки на консоли в Codeception? Я имею в виду сообщения, которые не имеют ничего общего с утверждениями, чисто для отладки самих тестов (например, как вы бы var_dump()
переменная на любом регулярном веб-сайте PHP)
Я уже пробовал var_dump()
, echo
и print
, но безрезультатно. Использование WebDebug
makeAResponseDump()
не дает требуемых результатов ни для одного, я просто хочу видеть мое содержимое переменной без необходимости запуска отладчика, такого как xdebug.
Ответы
Ответ 1
Кажется, я нашел способ решить проблему с помощью вспомогательного класса:
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, обновленных для тестирования функций, поэтому, если у кого-то есть концептуально правильное решение, отправьте
Ответ 2
\Codeception\Util\Debug::debug($this->em);die();
и запустите Codeception с флагом --debug
.
Ответ 3
Смотрите Debugging, в котором говорится
Вы можете распечатать любую информацию внутри теста с помощью функции codecept_debug.
И я использую его в классе * Cept:
codecept_debug($myVar);
Отладочный вывод отображается только при запуске с --debug (-v не показывает его, но -vv и -vvv do):
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
Ответ 4
Или вы можете использовать команды управления подробностями, например:
codecept run -vvv
где каждый v
увеличивает детализацию вывода (по умолчанию очень тихий).
Ответ 5
По умолчанию Codeception говорит, что произошла ошибка, но она не отображается подробно. Однако согласно этот пост в блоге добавление --debug показывает ошибки подробно.
codecept run --debug
Ответ 6
Короткий вариант будет
codecept run tests/acceptance/SomeCest.php -d
-d покажет вам шаги и отладки