C++ 即使测试失败,我也可以让google测试返回0吗?
我在VS 2012中的C++项目的后生成步骤中调用GoogleStest. 当然,当任何测试失败时,googletest命令返回failure(-1),整个项目被VisualStudio标记为失败 我不想那样。我想运行googletest,我想在输出中看到结果,但如果不是所有测试都通过,我不想让项目失败C++ 即使测试失败,我也可以让google测试返回0吗?,c++,googletest,C++,Googletest,我在VS 2012中的C++项目的后生成步骤中调用GoogleStest. 当然,当任何测试失败时,googletest命令返回failure(-1),整个项目被VisualStudio标记为失败 我不想那样。我想运行googletest,我想在输出中看到结果,但如果不是所有测试都通过,我不想让项目失败 是否有任何标志可以传递到googletest中,以便它总是返回成功(零) 是的,如果编写自己的main函数,则可以使测试返回0 我想象您正在将测试可执行文件与特殊的gtest_main库链接,这
是否有任何标志可以传递到googletest中,以便它总是返回成功(零) 是的,如果编写自己的
main
函数,则可以使测试返回0
我想象您正在将测试可执行文件与特殊的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
,类似于:
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
return 0;
}
有关此主题的更多信息,请参阅。如果谷歌测试失败,则不能让谷歌测试说它成功。因此,更改构建后步骤以调用运行googletest的脚本,忽略其返回代码并返回0。