iQt*_*iQt 6 c++ macros qt unit-testing qtestlib
我正在Qt中使用QTest编写一些单元测试.我还遇到了QBENCHMARK宏,它对它封装的代码进行了基准测试.
我正在运行我的单元测试并对一些代码进行基准测试.QBENCHMARK报告执行某些方法需要多长时间,这很好.我想在单元测试中使用执行时间,例如QVERIFY2().我怎样才能做到这一点?
编辑:
我目前正在做的是:
void UnitTest::benchmark()
{
QString str1 = QLatin1String("This is a test string");
QString str2 = QLatin1String("This is a test string");
QCOMPARE(str1.localeAwareCompare(str2), 0);
QBENCHMARK {
str1.localeAwareCompare(str2);
}
}
Run Code Online (Sandbox Code Playgroud)
从文档中:
void QTest::setBenchmarkResult(qreal 结果,QBenchmarkMetric 指标)
将此测试函数的基准结果设置为结果。
如果您想在不使用 QBENCHMARK 宏的情况下报告基准测试结果,请使用此函数。使用指标指定 Qt Test 应如何解释结果。
结果的上下文将是测试函数名称和 _data 函数中的任何数据标记。该函数在每个测试函数中只能调用一次,后续调用将替换之前报告的结果。
请注意,-iterations 命令行参数对没有 QBENCHMARK 宏的测试函数没有影响。
当然,您也可以只使用经过的计时器来完成这样的事情。