gpt4 book ai didi

googletest - 当期望在子例程中失败时,如何让 googletest 打印整个跟踪

转载 作者:行者123 更新时间:2023-12-04 13:48:28 29 4
gpt4 key购买 nike

我的 googletest 具有以下结构:

void
check(Arg a1, Arg a2)
{
EXPECT_TRUE(a1 == a2);
}

TEST(s, t)
{
a1 = make_arg1();
a2 = make_arg2();
check(a1, a2);

a11 = make_arg1();
a22 = make_arg2();
check(a11, a22);

...... many other check() calls ......
}

现在当测试失败时,错误打印输出只显示 check() 的源代码行,而不是 TEST() 的行。

我知道的唯一解决方案是使用 SCOPED_TRACE,如下所示:
TEST(s, t)
{
SCOPED_TRACE("100");
a1 = make_arg1();
a2 = make_arg2();
check(a1, a2);

SCOPED_TRACE("200");
a11 = make_arg1();
a22 = make_arg2();
check(a11, a22);

...... many other check() calls ......
}

但是添加所有的 SCOPED_TRACE 有点乏味,这里有更好的解决方案吗?

最佳答案

最好用EXPECT_EQEXPECT_TRUE如果你检查平等。如果您的 check()只包含这一行,然后不要使用函数,只需使用 EXPECT_EQ测试里面。

如果您的 check()函数更复杂,您不想复制和粘贴,您始终可以使用宏而不是函数。

关于googletest - 当期望在子例程中失败时,如何让 googletest 打印整个跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39553771/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com