2014-01-29 2 views
7

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

Вот пример вывода, который производит PHPUnit:

/Foo/Bar/Baz.php:31 

8) Foo\Bar\Baz::test with data set #7 ('foo,bar,baz,qux', array(array('foo', 'bar'), array('baz', 'qux'))) 
Failed asserting that two arrays are equal. 
--- Expected 
+++ Actual 
@@ @@ 
Array (
- 0 => Array (...) 
- 1 => Array (...) 
+ 'j' => 16 
+ 'args' => Array (...) 
) 

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

ответ

3

Согласно этой проблеме: https://github.com/sebastianbergmann/phpunit/issues/669, похоже, что это проблема XDebug.

В исходном коде, isEquals перенаправляет к этому: https://github.com/sebastianbergmann/phpunit/blob/58f3a0e212a8df66858f22fc9a58f138bb5a2e9d/src/Util/GlobalState.php#L361, и нет никакой формы «укорачивания»

Вы можете проверить с помощью php -d xdebug.overload_var_dump=0 /usr/bin/phpunit testCase.php или phpunit -d xdebug.overload_var_dump=0 testCase.php перезаписать настройки XDebug

3

Вы можете печатать все, что вы хотите когда утверждение терпит неудачу, передавая дополнительный параметр.

$this->assertEquals($a,$b,print_r($a,true)." does not equal ".print_r($b,true)); 
Смежные вопросы