Это похоже на мою систему. Никто другой не смог бы воспроизвести его. Если сообщение об ошибке слишком велико (около 65 тыс. Байт в моем случае), на экране ничего не печатается. Я использую PHP 7.1.3 в Windows 7 с установленным по умолчанию php.ini(ограничение памяти до 8gb) и настройкой по умолчанию PHPUnit 6.0.13. Ошибка не появляется как в приглашении, так и в powershell.
<?php
use PHPUnit\Framework\Constraint\Constraint;
use PHPUnit\Framework\TestCase;
class MyConstraint extends Constraint
{
protected $expected;
function __construct($expected){
parent::__construct();
$this->expected = $expected;
}
protected function matches($actual){
return false;
}
function failureDescription($other): string{
return "desc";
}
function toString(){
return "description";
}
function additionalFailureDescription($other): string{
return str_repeat("x", 100000);
// If set to a smaller dump, error will appear
// some people I asked to try could dump one million
// bytes without problems, while I can't print more
// than about 50k
}
}
class SomeTest extends TestCase
{
function testBigDump(){
TestCase::assertThat("irrelevant", new MyConstraint("irrelevant"));
}
}
?>
И вот что я получаю на экране:
PHPUnit 6.0.13 от Себастьяна Бергмана и участников.
Время выполнения: PHPDBG 7.1.3 Конфигурация:..............
F 1/1 (100%)
Время: 361 мс, память: 6,00 МБ
Произошел 1 сбой:
1) SomeTest:: testBigDump
<------- Notice no error description here
FAILURES! Тесты: 1, Утверждения: 1, Отказы: 1.
Есть ли у вас какие-либо идеи, что может вызвать это? Заранее благодарю вас.