Скрыть вывод во время выполнения теста PHPUnit

У меня есть несколько var_dumps в моем php-коде (я понимаю, что в конце концов не должно быть, но все же), и во время выполнения тестов они выводят ненужную информацию на консоль, есть ли способ игнорировать выполнение какого-либо кода?

Я пробовал

/**
 * @codeCoverageIgnore
 */

и

// @codeCoverageIgnoreStart
print '*';
// @codeCoverageIgnoreEnd

Но это просто игнорирует покрытие и все еще выполняет код.

Ответ 1

Вы можете установить для setOutputCallback функцию ничего не делать. Эффект заключается в подавлении любого выхода, напечатанного в тесте или в тестируемом классе.

Как пример:

namespace Acme\DemoBundle\Tests;


class NoOutputTest extends \PHPUnit_Framework_TestCase {

    public function testSuppressedOutput()
    {
        // Suppress  output to console
        $this->setOutputCallback(function() {});
        print '*';
        $this->assertFalse(false, "Don't see the *");
    }

}

Вы можете найти ссылку в doc

Надеемся на эту помощь

Ответ 2

Я не знаю, это хороший стиль, но я делаю так:

ob_start();
echo 200;
$output = ob_get_clean();