this_thread::sleep_for在WSL中的google测试中不起作用



我正在谷歌测试中尝试睡眠。根据这篇帖子,我可以使用以下内容:

#include <chrono>
#include <thread>
TEST_F(TestSuite, TestOne) {
// f1();
std::this_thread::sleep_for(std::chrono::seconds(2));
// f2();
}

我把这个命令放在测试中,但它不会改变任何东西。代码执行得很快,因为它省略了睡眠。我正在使用g++(Ubuntu 9.3.0-10ubuntu2(9.3.0。
我可能做错了什么?

您的测试真的执行了吗?我建议在测试开始时放置临时std::cout << "STARTING TEST" << std::endl;,并检查您是否能在输出中看到这些单词。

嗯。。。据我所知,问题出在WSL中,请参阅以下链接:std::sleep_for在Windows 10上的不可预测行为。

尝试使用Windows的本地编译器构建源代码:MSVC、MinGW或Cygwin。如果您的代码使用Linux特定的东西,Cygwin可能会更好(更容易构建代码或更容易移植代码(。或者您可以尝试使用一些Linux系统。对不起,我不知道还有什么建议。。。

最新更新