获取GoogleTest/在运行0个测试时失败的测试数



我正在使用cmake的测试运行程序来运行几个谷歌测试二进制文件。我希望发生的是,如果一个谷歌测试二进制文件通过RUN_ALL_TESTS()运行0个测试,它就会失败。目前,RUN_ALL_TESTS()在运行0个测试时返回成功。或者,如果我可以以某种方式访问RUN_ALL_TESTS()运行的测试数量,我可以将其成功覆盖为错误,并将错误放大。

我已经尝试用--no-tests=error在cmake级别修复此问题。然而,这并不奏效。我认为原因是cmake认为自己在运行谷歌测试二进制文件,而这些二进制文件被视为";运行测试";,即使测试二进制文件本身没有任何测试。或者,可能是因为一些googletest测试二进制文件有测试,--no-tests=error参数没有触发。

我研究过谷歌测试,这里列出的标志似乎都没有帮助https://google.github.io/googletest/advanced.html。我看不到设置选项的方法,RUN_ALL_TESTS不返回任何其他信息,也看不到运行测试数的函数。

我缺少什么选择?。

失败cmake测试运行程序很容易。

#include <gtest/gtest.h>
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
const int rv = RUN_ALL_TESTS();
if (rv != 0)
return rv;
#if 1
if (::testing::UnitTest::GetInstance()->test_to_run_count() == 0)
return 1;
#else
if (::testing::UnitTest::GetInstance()->successful_test_count() == 0)
return 1;
#endif
return 0;
}

最新更新