Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将超时设置为Qt测试_C++_Qt_Testing - Fatal编程技术网

C++ 将超时设置为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

我使用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::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秒。