2014-01-22 9 views
6

Возможно ли регистрировать или выводить любые пользовательские данные во время работы сценария? Я знаю, что PHP-код выполняется два раза за каждый прогон, как я могу увидеть значение переменной во время второго шага?Код. Выходная переменная во время выполнения сценария

+0

Как PHP-код выполняется 2 раза? –

+1

«Но вы должны иметь в виду, что Codeception выполняет каждый сценарий два раза: один для анализа и один для выполнения. Таким образом, любой пользовательский PHP-код, помещенный в файл, будет выполняться два раза!». Это из учебника. – MrBinWin

ответ

3
<?php 
if ($scenario->running()) { 
    Logger::log((string)$var); 
} 
?> 

пожалуйста, сделайте см docs

и относительно видеть значение переменной, предпочтительный путь типажей в строку, если это скалярные данные, доступ массив индексов/ключ, если это массив, и т.д., но есть недокументированные методы $ вар -> __() значение, которое вы можете использовать для отладки, но не должны полагаться на него в тестах

+0

Я знаю, что это должно быть очевидно, но не может понять это. Я получаю FatalError 'Class 'Logger' not found' – pymarco

+0

все поставщики должны быть установлены перед использованием Codeception –

5
codecept_debug($var); 

И запустить codecept в «режиме отладки», чтобы увидеть его:

./vendor/bin/codecept run -d 

Если вы хотите, чтобы убедиться, что ваш вар проявляется не только в режиме отладки:

$t = ob_get_clean(); // get current output buffer and stopping output buffering 
var_dump($var); // show what we need 
ob_start(); // start output buffering 
echo($t); // restore output buffer 

Вы можете переместить этот код к внешней библиотеке.

Смежные вопросы