如何让Eclipse控制台显示与终端相同的GoogleTests输出?

5

我广泛使用GoogleTest,在控制台中的输出如下:

GoogleTest 控制台输出

当我在Eclipse中运行相同的内容(使用截至今天最新的Eclipse Mars),输出没有颜色并且有乱码字符(将输出粘贴到这里看不出来):

Running main() from gtest_main.cc
[0;32m[==========] [mRunning 3 tests from 1 test case.
[0;32m[----------] [mGlobal test environment set-up.
[0;32m[----------] [m3 tests from NloptAdapterSuite
[0;32m[ RUN      ] [mNloptAdapterSuite.testQuadraticFunction1
[0;32m[       OK ] [mNloptAdapterSuite.testQuadraticFunction1 (1 ms)
[0;32m[ RUN      ] [mNloptAdapterSuite.testQuadraticFunction1WithNoise
[0;32m[       OK ]     [mNloptAdapterSuite.testQuadraticFunction1WithNoise (1 ms)
[0;32m[ RUN      ] [mNloptAdapterSuite.testQuadraticFunction2
[0;32m[       OK ] [mNloptAdapterSuite.testQuadraticFunction2 (1 ms)
[0;32m[----------] [m3 tests from NloptAdapterSuite (3 ms total)

[0;32m[----------] [mGlobal test environment tear-down
[0;32m[==========] [m3 tests from 1 test case ran. (3 ms total)
[0;32m[  PASSED  ] [m3 tests.

如何修复以获得相同的输出?

4
“垃圾”字符是用于设置控制台颜色的ANSI命令。 Eclipse控制台默认不支持这些命令。 Eclipse Marketplace中至少有一个插件声称可以添加此功能。 - greg-449
是的,在控制台安装此 ANSI 转义插件会产生与控制台相同的输出。谢谢!将其发布为答案,我会接受。 - SkyWalker
在SO上,本质上只是一个链接的答案是不可接受的。 - greg-449
1个回答

5

ANSI Escape in Console插件非常适合我,由greg-449提供,上面的链接。安装后,gtest输出如下图所示:

gtest console output

我的环境是Neon.2 (Eclipse 4.6.2)。


1
我不得不在我的测试二进制参数中添加“--gtest_color=yes”以显示颜色。 - donturner
@don - 当你从命令行运行时,你也需要这个吗? - BeeOnRope
不,我使用的是OSX 10.12.6。使用默认的终端应用程序,颜色显示正常,无需任何额外的命令行参数。 - donturner
@donturner 嗯,显然 googletest 有代码检测输出是否要传输到支持彩色输出的终端类型,并在默认情况下禁用它(如果不是这种情况)。也许在 Eclipse 的情况下检测方式在 OSX 上不同,或者由于对 gtest 新版本的终端白名单进行更改而导致普遍变化。 - BeeOnRope

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接