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
相关产品推荐
相关产品推荐

