Google Test返回值

时间:2012-06-21 13:33:38

标签: c++ googletest googlemock

我正在使用Google Test和Google Mock框架进行项目的单元测试。我有各种单元测试项目,并希望自动化我的构建,以便运行所有这些。

我希望单元测试可执行文件在成功时返回0,在任何测试失败时返回1(或任何其他值),但是当所有测试都通过时我得到1。我收到了一些GMOCK警告,但无法找到有关影响返回值的警告的任何文档。

我尝试运行测试过滤只运行一个测试用例,其中没有触发GMOCK警告,仍然得到1作为返回值。

我有几个DISABLED测试用例,所以我对它们进行了评论。仍然获得1作为回报值。

根据RUN_ALL_TESTS宏的文档和代码注释,返回值应为0。

我无法想到任何导致返回值的事情1.我错过了什么吗?

1 个答案:

答案 0 :(得分:4)

如果你看一下gtest.h中RUN_ALL_TESTS()宏的定义,就会清楚地说明0没有失败就返回了:

// Use this macro in main() to run all tests.  It returns 0 if all
// tests are successful, or 1 otherwise.
//
// RUN_ALL_TESTS() should be invoked after the command line has been
// parsed by InitGoogleTest().

#define RUN_ALL_TESTS()\
  (::testing::UnitTest::GetInstance()->Run())

外观甚至警告(来自gmock)可能会导致返回值为1.如果你摆脱gmock警告会发生什么(例如使用像NiceMock<>这样的s.th.来包装你的模拟类实例)。