Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 即使测试失败,我也可以让google测试返回0吗?_C++_Googletest - Fatal编程技术网

C++ 即使测试失败,我也可以让google测试返回0吗?

C++ 即使测试失败,我也可以让google测试返回0吗?,c++,googletest,C++,Googletest,我在VS 2012中的C++项目的后生成步骤中调用GoogleStest. 当然,当任何测试失败时,googletest命令返回failure(-1),整个项目被VisualStudio标记为失败 我不想那样。我想运行googletest,我想在输出中看到结果,但如果不是所有测试都通过,我不想让项目失败 是否有任何标志可以传递到googletest中,以便它总是返回成功(零) 是的,如果编写自己的main函数,则可以使测试返回0 我想象您正在将测试可执行文件与特殊的gtest_main库链接,这

我在VS 2012中的C++项目的后生成步骤中调用GoogleStest. 当然,当任何测试失败时,googletest命令返回failure(-1),整个项目被VisualStudio标记为失败

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


是否有任何标志可以传递到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。