PHPStorm + PHPUnit Выход цвета

Поэтому у меня PHPUnit работает в PHPStorm 7.1, но я не могу узнать, как получить цветовые коды ANSI, работающие в тестах. Мой PHPunit.xml имеет colors = "true" в списке свойств, но каждый раз, когда я пытаюсь что-то вроде:

 echo "\033[31mError! Error!\033[0m\n"; 

В одном из моих тестовых случаев это просто дает мне:

 [31mError! Error![0m 

в выводе phpunit PHPstorm. Есть ли способ, чтобы цвета отображались правильно при использовании цветовых кодов ANSI в тестах в PHPStorm?

Solutions Collecting From Web of "PHPStorm + PHPUnit Выход цвета"

PhpStorm имеет специальный скрипт интеграции для запуска тестов PHPUnit (все сообщения / индикаторы прогресса передаются в часть GUI, где вы можете легко увидеть, какие тесты прошли, а что нет и т. Д.).

Консоль PhpStorm не поддерживает цвета ANSI – http://youtrack.jetbrains.com/issue/IDEA-69880 и связанные с ними билеты.

Но вы можете установить плагин Grep Console, и он добавит поддержку цветов ANSI (необходимо активировать в настройках). Я пробовал его с PHPUnit, и он работал – не все было окрашено (некоторые из кодов не были распознаны, но большинство из них работало). При желании вы можете связаться с автором плагина без рабочих частей.

Этот вопрос задавали два года назад, но если кто-то останавливается, я написал простой PHP-класс как часть моего проекта с открытым исходным кодом. Он использует последовательность вылета ANSI VT-100 и был протестирован с помощью PHPStorm 2016.1 во время работы phpunit в консоли.

Вы можете скопировать код ниже, чтобы включить его в свое программное обеспечение, или вы также можете установить через композитор '1happyplace / phpunit-colors'. Здесь представлено полное описание.

Следующий примерный код создаст следующий результат:

 // echo out the escaped strings to create different levels of warnings echo Display::warning("Warning!"); echo Display::caution("Caution..."); echo Display::OK("OK to go!"); // place the escaped string in the $message field to light up your output $this->assertSame("one","two",Display::caution("This assertion has intentionally failed")); 

введите описание изображения здесь

 class Display { /** * The escape sequence that clears any active styling on the terminal. */ const CLEAR = "\e[0m"; /** * Warning escape sequence which sets the background color to red and the * foreground to white. */ const WARNING = "\e[41;97m"; /** * Caution escape sequence which sets the background color to yellow and the * foreground to black. */ const CAUTION = "\e[43;30m"; /** * OK escape sequence which sets the background color to green and the * foreground to black. */ const OK = "\e[42;30m"; /** * Display the text with a red background and white foreground * and end it with the newline character (if desired) * * @param mixed $text - the text of the message * @param boolean $newline - whether to append a new line * * @return string - the escaped sequence and the optional newline */ public static function warning($text, $newline = true) { // echo the string surrounded with the escape coding to // display a warning $text = self::WARNING . $text . self::CLEAR; // if a carriage return was desired, send it out $text .= $newline ? "\n" : ""; // return the escaped text return $text; } /** * Display the text with a yellow background and black foreground * and end it with the newline character (if desired) * * @param mixed $text - the text of the message * @param boolean $newline - whether to append a new line * * @return string - the escaped sequence and the optional newline */ public static function caution($text, $newline = true) { // echo the string surrounded with the escape coding to // display a cautionary message $text = self::CAUTION . $text . self::CLEAR; // if a carriage return was desired, send it out $text .= $newline ? "\n" : ""; // return the escaped text return $text; } /** * Display the text with a green background and black foreground * and end it with the newline character (if desired) * * @param mixed $text - the text of the message * @param boolean $newline - whether to append a new line * * @return string - the escaped sequence and the optional newline */ public static function OK($text, $newline = true) { // echo the string surrounded with the escape coding to // display a positive message $text = self::OK . $text . self::CLEAR; // if a carriage return was desired, send it out $text .= $newline ? "\n" : ""; // return the escaped text return $text; }