Может ctest отображать цвета консоли googletest

Я создаю и запускаю модульные тесты, созданные с помощью googletest, внутри проекта cmake с включенным ctest

Я запускаю тесты с помощью "ctest -VV"

но тестовый вывод не окрашивает "красный" и "зеленый"

[ВЫПОЛНИТЬ] [ОК] [ВЫПОЛНЕНО]

Кто-нибудь знает, есть ли варианты ctest, позволяющие этим цветам просачиваться на консоль?


person MyDeveloperDay    schedule 13.12.2015    source источник
comment
Не зная, как вы добавили googletest в CMake или в свою среду хоста, это всего лишь предположение: может ли это дублироваться в В выводе GTest нет цветов, когда он построен с помощью cmake + ninja и выполняется автоматически? Можете ли вы попробовать --gtest_color=yes опцию googletest?   -  person Florian    schedule 14.12.2015
comment
Итак, я попробовал --gtest_color = yes, и это не сработало ... но еще несколько поисков в Google привели меня к GTEST_COLOR = 1, установка этого в моем .travis.yml заставила тесты казаться цветными ... но в моей командной строке это выглядит так 1: ← [0; 32m [RUN] ← [mStringTest.Case, это говорит о том, что googletest может неправильно думать, что я xterm, когда на самом деле я запускаю bash в командной строке Windows   -  person MyDeveloperDay    schedule 18.12.2015
comment
export GTEST_COLOR = 1 работал у меня (на Ubuntu).   -  person Étienne    schedule 17.10.2016
comment
@ Étienne У меня сработало, спасибо!   -  person Antonio Petricca    schedule 02.12.2016


Ответы (3)


Как предложил OP, я добавил эту строку в свой .bashrc, и она сработала:

export GTEST_COLOR=1
person Community    schedule 16.12.2016

Возможно, вы не хотите экспортировать какую-либо переменную в глобальную область видимости и иметь цвета только в одном вызове ctest. В этом случае используйте эту единственную команду:

GTEST_COLOR=1 ctest -V
person MaEtUgR    schedule 07.02.2019

В cmake вы можете передавать такие переменные окружения:

add_executable(testExecutable
        my_test.cpp)

target_link_libraries(testExecutable
        gtest)

add_test(NAME testExecutable
        COMMAND testExecutable)

add_custom_target(check
        COMMAND env CTEST_OUTPUT_ON_FAILURE=1 GTEST_COLOR=1 ${CMAKE_CTEST_COMMAND}
        DEPENDS testExecutable)

запустить $ make check

person Simon Puente    schedule 14.04.2019