我正在使用googletest C++测试框架.通常,运行测试的文本输出如下所示:
[ RUN ] MyTest.Fuzz [ OK ] MyTest.Fuzz (1867 ms)
我想以相同的格式输出一些额外的数据,例如:
[ RUN ] MyTest.Fuzz [ ] random seed = 1319760587 [ OK ] MyTest.Fuzz (1867 ms)
我在googletest文档中找到了Logging Additional Information,但它似乎只是将结构化数据发送到XML输出,而不是标准控制台输出.
我可以在我的单元测试中调用googletest函数,以这种格式输出文本吗?手动将数据发送到cout工作,但它不包括通常的彩色输出,所以我必须通过打印13个空格或其他来明确缩进输出.
我写了一个像下面这样的谷歌测试,它将一些计算值与预期存储在 CSV 文件中的值进行比较。
class SampleTest : public ::testing::Test{
public:
void setupFile(const std::string& filename) {
// open csv file here
}
void checkRow(ComputedRowValue val) {
CSVParsedOutput out;
m_csv_f.readAndParseLine(out);
EXPECT_EQ(out.field1, val.field1);
EXPECT_EQ(out.field2, val.field2);
EXPECT_EQ(out.field3, val.field3);
m_csv_line++;
}
protected:
CSVFile m_csv_f; // CSV file with expected results
int m_csv_line = 0;
};
Run Code Online (Sandbox Code Playgroud)
这将运行在一些巨大的文件大小和 EXPECT_EQ 失败时只会告诉我哪个值不匹配。如何覆盖 EXPECT_EQ 输出的错误消息也打印m_csv_line?