You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GoogleTest日志显示测试数量与代码不符的问题咨询

问题原因:混淆GoogleTest的测试用例与断言概念

你代码里的两个EXPECT_EQ是断言(Assertion),而GoogleTest日志统计的“test”指的是测试用例(Test Case)——每个TEST()宏定义的才是一个独立的测试用例,一个测试用例可以包含多个断言,但只会被计数一次。

你的代码中只通过TEST(FactorialTest, Negative)定义了1个测试用例,里面的两个断言都属于这个测试用例,所以日志会显示“1 test from 1 test suite ran.”,这和GoogleTest版本无关。

如果要让日志统计为2个测试,需要定义两个独立的TEST()测试用例,示例代码如下:

TEST(FactorialTest, Add1And1) {
    EXPECT_EQ(add(1,1),2); // PASS
}

TEST(FactorialTest, Add1And2) {
    EXPECT_EQ(add(1,2),3); // PASS
}

int main(int argc,char **argv)
{
    printf("Running main() from %s\n", __FILE__);
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();   
}

运行这段代码后,日志就会输出你预期的“2 tests from 1 test suite ran.”,因为现在有两个独立的测试用例,同属于FactorialTest测试套件。

内容的提问来源于stack exchange,提问作者blackcat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:28:13