C++ GTEST:分别在安装和拆卸之前和之后进行识别

C++ GTEST:分别在安装和拆卸之前和之后进行识别,c++,googletest,C++,Googletest,我有多个测试类,每个测试类都有SetUp()和TearDown() 从我所读到的内容来看,在RUN_ALL_test()之后运行测试用例的顺序是未知的 我想在调用第一个安装程序之前启动服务,并在调用最后一次拆卸后停止服务 我如何做到这一点? 请举个例子 谢谢您可以使用std::call_once来确保只调用一次任何东西。第一个观察结果是,这些不是单元测试,因为它们需要运行“服务”。我建议考虑重新设计应用程序,以便在不需要外部服务的情况下运行测试。一种方法可能是使用抽象类和GoogleMock 让

我有多个测试类,每个测试类都有SetUp()和TearDown()

从我所读到的内容来看,在RUN_ALL_test()之后运行测试用例的顺序是未知的

我想在调用第一个安装程序之前启动服务,并在调用最后一次拆卸后停止服务

我如何做到这一点? 请举个例子


谢谢

您可以使用
std::call_once
来确保只调用一次任何东西。

第一个观察结果是,这些不是单元测试,因为它们需要运行“服务”。我建议考虑重新设计应用程序,以便在不需要外部服务的情况下运行测试。一种方法可能是使用抽象类和GoogleMock

让外部服务在正常的拆卸过程中幸存下来的问题在于,您有明确的责任确保下一个测试将找到一个干净的环境:一个测试可能会被前一个测试设置的状态破坏

如果您真的想继续使用长寿命的外部服务,请阅读中的
SetUpTestCase
teardowndtestcase
,这将允许每个测试夹具只启动一次服务

还有一个更危险的
环境
类允许进行全局设置和拆卸(在高级指南中搜索)

但同样,您的测试很脆弱,很难调试。我建议重新考虑这个方法