Подтвердить что ты не робот

Печать вывода отладки на консоль в Codeception

Очень толстый вопрос, но есть ли способ распечатать собственные сообщения отладки на консоли в Codeception? Я имею в виду сообщения, которые не имеют ничего общего с утверждениями, чисто для отладки самих тестов (например, как вы бы var_dump() переменная на любом регулярном веб-сайте PHP)

Я уже пробовал var_dump(), echo и print, но безрезультатно. Использование WebDebug makeAResponseDump() не дает требуемых результатов ни для одного, я просто хочу видеть мое содержимое переменной без необходимости запуска отладчика, такого как xdebug.

4b9b3361

Ответ 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 покажет вам шаги и отладки