C++ 将超时设置为Qt测试
我使用Qt测试,为一些计算量大的算法编写单元测试。该进程占用了相当多的时间,当在旧计算机上运行时,该进程会失败,因为超时如下:C++ 将超时设置为Qt测试,c++,qt,testing,C++,Qt,Testing,我使用Qt测试,为一些计算量大的算法编写单元测试。该进程占用了相当多的时间,当在旧计算机上运行时,该进程会失败,因为超时如下: ********* Start testing of KnotTest ********* Config: Using QtTest library 5.6.2, Qt 5.6.2 (i386-little_endian-ilp32 shared (dynamic) release build; by MSVC 2013) PASS : MyTest::initTe
********* Start testing of KnotTest *********
Config: Using QtTest library 5.6.2, Qt 5.6.2 (i386-little_endian-ilp32 shared (dynamic) release build; by MSVC 2013)
PASS : MyTest::initTestCase()
QFATAL : MyTest::test_benchmark() Test function timed out
FAIL! : MyTest::test_benchmark() Received a fatal error.
Unknown file(0) : failure location
Totals: 1 passed, 1 failed, 0 skipped, 0 blacklisted
********* Finished testing of KnotTest *********
如何为生成的测试程序设置自定义超时?您可以使用名为
QTEST\u FUNCTION\u timeout的环境变量覆盖超时。必须以毫秒为单位指定超时。默认情况下,Qt使用300000毫秒(5分钟)的超时
这个环境变量没有文档记录,所以我不能保证它会继续出现在Qt的未来版本中
另外,您可以使用qputenv
以编程方式设置环境变量:
在QtCreator中,您可以在中更改默认超时
工具->选项->测试->常规:超时
另请参见以下链接中的“构建和运行测试”:
QTest::qExec()
在QTest_MAIN()
宏中执行,因此需要在测试构造函数中设置环境变量。我的Qt Creator 4.7.1(请参见@toke的答案)中的默认值为60秒。