将超时设置为Qt测试

Che*_*o R 5 c++ testing qt

我正在使用Qt Test,用于某些计算重算法的写单元测试.该过程使用了相当长的时间,并且当在较旧的计算机中运行时,该过程失败,因为这样的超时:

********* 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 *********
Run Code Online (Sandbox Code Playgroud)

如何为生成的测试程序设置自定义超时?

小智 9

在 QtCreator 中,您可以更改默认超时

工具 -> 选项 -> 测试 -> 常规:超时

另请参阅以下链接中的“构建和运行测试”:

http://doc.qt.io/qtcreator/creator-autotest.html


RA.*_*RA. 5

您可以覆盖使用所谓的环境变量的超时QTEST_FUNCTION_TIMEOUT。超时值必须以毫秒为单位。默认情况下,Qt使用300000毫秒(5分钟)的超时。

此环境变量是未记录的,因此我不能保证它会在将来的Qt版本中继续存在。

顺便说一句,您可以使用qputenv以下方式以编程方式设置环境变量:

http://doc.qt.io/qt-5/qtglobal.html#qputenv

  • `QTest::qExec()` 在 `QTEST_MAIN()` 宏中执行,因此需要在测试构造函数中设置环境变量。 (2认同)