我在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);
}
}
答案 0 :(得分:2)
来自文档:
void QTest::setBenchmarkResult(qreal result, QBenchmarkMetric metric)
将此测试函数的基准测试结果设置为结果。
如果要在不使用QBENCHMARK宏的情况下报告基准测试结果,请使用此功能。使用指标指定Qt Test应如何解释结果。
结果的上下文将是测试函数名称和_data函数中的任何数据标记。此功能只能在每个测试功能中调用一次,后续调用将替换之前报告的结果。
请注意,如果没有QBENCHMARK宏,-iterations命令行参数对测试函数没有影响。
你当然也可以使用an elapsed timer来做这件事。