【问题标题】:Can ctest display googletest console colorsctest可以显示googletest控制台颜色吗
【发布时间】:2016-03-19 03:21:01
【问题描述】:

我正在启用 ctest 的 cmake 项目中构建和运行使用 googletest 构建的单元测试

我使用“ctest -VV”运行测试

但是测试输出没有给“红色”和“绿色”上色

[运行][确定][通过]

有谁知道是否有 ctest 选项允许这些颜色渗透到控制台?

【问题讨论】:

  • 在不知道您将 googletest 添加到 CMake 的方式或您的主机环境的情况下,这只是一个猜测:这可能与 GTest's output has no colors when built with cmake+ninja and executed automatically 重复吗?你可以试试 googletest 选项--gtest_color=yes 吗?
  • 所以我尝试了 --gtest_color=yes 并没有奏效......但是更多的谷歌搜索让我找到了 GTEST_COLOR=1,在我的 .travis.yml 中设置它会使测试显示为彩色。 .. 但在我的命令行上看起来像这样 1: ←[0;32m[ RUN ] ←[mStringTest.Case,这表明 googletest 可能错误地认为我是一个 xterm,而实际上我在一个内部运行 bash windows 命令提示符
  • "export GTEST_COLOR=1" 为我工作(在 Ubuntu 上)。
  • @Étienne 它对我有用,谢谢!

标签: cmake googletest ctest


【解决方案1】:

正如 OP 所建议的,我将此行添加到我的 .bashrc 中并且它起作用了:

export GTEST_COLOR=1

【讨论】:

    【解决方案2】:

    也许您不想将任何变量导出到全局范围,并且在一次 ctest 调用中只有颜色。在这种情况下使用这个命令:

    GTEST_COLOR=1 ctest -V
    

    【讨论】:

      【解决方案3】:

      在 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 2021-05-04
        • 1970-01-01
        相关资源
        最近更新 更多