현재 버전의 gtest에서는 깔끔하게 수행 할 수있는 방법이 없습니다. 코드를 살펴본 결과 테스트에 실패 하면 텍스트 출력 (gtest "Messages"로 래핑 됨)이 표시됩니다 .
그러나 어느 시점에서 gtest가 printf
화면에 표시 되기 시작 하고 그 이상의 수준을 활용하여 플랫폼에 독립적 인 색상을 얻을 수 있습니다.
원하는 작업을 수행 할 수있는 해킹 된 매크로가 있습니다. gtest 내부 텍스트 색상을 사용합니다. 물론 internal::
네임 스페이스는 경고음을 울려 야하지만, 작동합니다.
용법:
TEST(pa_acq,Foo)
{
PRINTF("Hello world \n");
TEST_COUT << "Hello world" << std::endl;
}
산출:
암호:
namespace testing
{
namespace internal
{
enum GTestColor {
COLOR_DEFAULT,
COLOR_RED,
COLOR_GREEN,
COLOR_YELLOW
};
extern void ColoredPrintf(GTestColor color, const char* fmt, ...);
}
}
#define PRINTF(...) do { testing::internal::ColoredPrintf(testing::internal::COLOR_GREEN, "[ ] "); testing::internal::ColoredPrintf(testing::internal::COLOR_YELLOW, __VA_ARGS__); } while(0)
class TestCout : public std::stringstream
{
public:
~TestCout()
{
PRINTF("%s",str().c_str());
}
};
#define TEST_COUT TestCout()