测试如何停止所有正在运行的线程

gtest how to stop all running threads

本文关键字:运行 线程 何停止 测试      更新时间:2023-10-16

>如果我有一个测试用例,如下所示

TEST(one, test_one) {
    vector<thread> threads
    // ... initialize threads
}

在这些线程中的某个地方断言失败,如何停止所有线程并终止? 因为看起来该函数从现在开始仍在执行。

如何停止所有线程并终止?

如果没有被测类的交互以及它实际涉及的线程,就无法完成此操作。

如果你有一些被测试的类,涉及运行多个线程,你应该在析构函数中有一些实现,以指示线程停止并加入它们。


尽管我可以考虑从预期的assert()语句中拯救出死亡测试之类的事情,并且整个过程被杀死(因此无需担心其他线程被终止)。