即使测试失败,我可以让谷歌测试返回0吗?

时间:2015-10-02 21:05:37

标签: c++ googletest

我在VS 2012中的C ++项目的构建后步骤中调用了googletest。

当然,当任何测试失败时,googletest命令会返回失败(-1),并且Visual Studio会将整个项目标记为失败。

我不希望这样。我希望googletest能够运行,我希望在输出中看到结果,但如果不是所有测试都通过,我不想让项目失败。

是否有任何旗帜可以传递到googletest以便它始终返回成功(零)?

1 个答案:

答案 0 :(得分:3)

是的,如果您编写自己的0函数,则可以使测试返回main

我认为您将测试可执行文件与特殊的gtest_main库链接起来,这是一个非常基本的帮助程序,可以避免编写自己的main函数。

它只是在做:

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

RUN_ALL_TESTS宏是返回-1的罪魁祸首,所以您需要做的就是停止与gtest_main的关联并编写自己的main更像:< / p>

int main(int argc, char **argv) {
  testing::InitGoogleTest(&argc, argv);
  RUN_ALL_TESTS();
  return 0;
}

有关此主题的更多信息,请参阅the GoogleTest docs