我在VS 2012中的C ++项目的构建后步骤中调用了googletest。
当然,当任何测试失败时,googletest命令会返回失败(-1),并且Visual Studio会将整个项目标记为失败。
我不希望这样。我希望googletest能够运行,我希望在输出中看到结果,但如果不是所有测试都通过,我不想让项目失败。
是否有任何旗帜可以传递到googletest以便它始终返回成功(零)?
答案 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。