c++ - 如何强制 Google 测试用例最后运行

标签 c++ unit-testing googletest

我们的团队拥有一套非常成熟的 Google Test (GTest) 测试用例。除了 GTest 自己生成的标准 JUnit XML 输出之外,测试用例通过自定义测试环境构建测试报告。

我想添加一个最终测试,以确保 Google 测试套件在套件中的所有其他测试执行后生成其测试报告。换句话说,我想强制最后执行哪个测试,以便它可以编写自定义输出,然后验证它是否正确编写,否则失败。

即使 Google Test 以随机顺序执行测试,该解决方案也应该有效。我可以强制一个测试最后运行吗?我可以编写一个 GTest 不会自动发现的测试,从我的“主要”中自己调用它,并将其结果整合到其余测试中,或者 ??

我看不出用当前的 GTest API 可以做到这一点,但认为值得一问。

最佳答案

这可能最接近您要查找的内容。

https://github.com/google/googletest/blob/master/docs/advanced.md#sharing-resources-between-tests-in-the-same-test-suite

也许您可以使用静态对象的销毁来收集有关所有已运行测试的信息。

但是,请注意 fork 。

我真的会编写自己的 main(), fork 测试进程并等待子进程完成,以便您可以从中收集数据。

关于c++ - 如何强制 Google 测试用例最后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654530/

相关文章:

c++ - 我能知道在 gtest EXPECT_NO_THROW(或 ASSERT_NO_THROW)中抛出了哪个异常吗?

c++ - cmake -D <变量> :<type>=<value> what does the parameter "-D" mean

c++ - 迭代器错误值

c++ - 无论如何,我可以在不使用资源的情况下将标识符代码分配给 Win32 控件吗?

python - 如何在 Python 测试期间替换方法?

c++ - 谷歌测试 : Parameterized tests which use an existing test fixture class?

c++ - 仅在与类的其他对象进行比较时,是否有任何理由不将 operator== 作为成员重载?

unit-testing - Common Lisp 的持续集成?

java - 如何处理来自 Mocks 的 Setter/Getter 方法?

c++ - GTEST : False negative for incorrect number of macro arguments