Перейти к содержимому

Фотография

Цветные логи для тестов - TestNG ломает форматирование

TestNG цветные логи

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 11 августа 2015 - 12:25

Добрый день!

 

Пишу тесты на Selenium.

Использую IDEA + TestNG.

Для вывода логов - log4j2 (2.3).

 

Попробовала сделать логи цветными (чтобы все возможные не блокирующие проблемы - подсвечивались, к примеру, красным, в общем логе).

 

log4j2 по умолчанию позволяет это делать.

<PatternLayout pattern="%highlight{[%level]}{FATAL=bright red, ERROR=red, WARN=blue, INFO=green, DEBUG=magenta, TRACE=black} %highlight{%d{dd.MM.yyyy HH:mm:ss}&#9;[%C{1}.%M(%F:%L)]%n&#9;%msg%n}{FATAL=bright red, ERROR=red, WARN=black, INFO=black, DEBUG=black, TRACE=black}"/>

(уровень всегда в цвете, само сообщение в цвете только при ошибках)

 

Попробовала сначала в отдельном НЕ-TestNG запуске (Run as Java)

public static void main(String args[]) throws SQLException {
        log.fatal("Test");
        log.error("Test");
        log.warn("Test");
        System.out.println("\033[34mTest\033");
    } 

Получилась красота, вроде бы все работает верно, можно использовать.

Прикрепленный файл  colors.png   4,29К   0 Количество загрузок:

 

Попробовала запустить точно тот же самый метод с тем же логгером и тем же паттерном, но уже через "Run As TestNG" (естественно - убрала аргументы и добавила аннотацию @Test).

Результат печальный.

Прикрепленный файл  colors2.png   3,83К   0 Количество загрузок:

 

Что такого делает "Run As TestNG", что вот так ломает вывод цвета в консоль?

Как это исправить?


  • 0

#2 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 27 сентября 2016 - 11:55

Не думала, что снова вернусь к этому вопросу, но тут - решила в очередной раз обновить IDEA до последней версии (CE).

А заодно - попробовала раскомментировать старые "цветные" строки в настройках log2j.

Итог: 

 

<PatternLayout pattern="%highlight{[%level] %d{dd.MM.yyyy HH:mm:ss}&#9;[%C{1}.%M(%F:%L)]%n&#9;}{FATAL=bright red, ERROR=red, WARN=green, INFO=blue, DEBUG=magenta, TRACE=black}%highlight{%msg%n}{FATAL=bright red, ERROR=red, WARN=black, INFO=black, DEBUG=black, TRACE=black}"/>

 

Прикрепленный файл  logs.png   10,29К   0 Количество загрузок:


  • 0

#3 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 27 сентября 2016 - 12:32

а приоритеты тестам в коде как назначаете?


  • 0

#4 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 07 октября 2016 - 13:09

Приоритеты тестам? Самим тестам - никак.

Просто внутри кода есть вставки вида 'log.<уровень_сообщения>("текст сообщения")'.

log = LogManager.getLogger();

 

Уровень зависит от того, насколько важна информация в рамках этого теста.

Например, то, что в теории может понадобится, но видеть в консоли не хочу: log.debug("Текст") - уходят только в текстовый лог.

То, что хочу видеть постоянно для информации (например, ФИО и номер созданной скриптом анкеты): log.warn("Текст") - уходит и в текстовый лог, и в консоль.

То, что ошибка или некорректное поведение системы (и то, что теперь наконец-то выделяется у меня красным цветом): log.error("Текст") или log.fatal("Текст").

 

Если вдруг для отладки нужна какая-то неважная инфа - просто меняю временно уровень на warn.

 

Вообще, помимо логов log4j у меня есть и отдельные "ручные" логи - просто методы, которые фиксируют в текстовом файлике инфу. Например, по расчетам все возможным - кладется в отдельную папочку с именем файла = имя теста + результат расчета + номер анкеты, для удобства.


  • 0



Темы с аналогичным тегами TestNG, цветные логи

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных