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

时间:2017-08-12 20:13:19

标签: c++ unit-testing googletest

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

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

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

我认为使用当前的GTest API无法做到这一点,但认为值得一提。

1 个答案:

答案 0 :(得分:0)

这可能与您正在寻找的最接近。

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

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

但是,要小心叉子。

我真的会编写你自己的main(),分叉测试过程并等待孩子完成,这样你就可以从中收集数据。