6

我正在使用 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);
    }
}
4

1 回答 1

2

从文档中:

void QTest::setBenchmarkResult(qreal 结果,QBenchmarkMetric 指标)

将此测试功能的基准测试结果设置为结果。

如果您想在不使用 QBENCHMARK 宏的情况下报告基准测试结果,请使用此功能。使用度量来指定 Qt 测试应该如何解释结果。

结果的上下文将是测试函数名称和 _data 函数中的任何数据标记。该函数在每个测试函数中只能调用一次,后续调用将替换之前报告的结果。

请注意,-iterations 命令行参数对没有 QBENCHMARK 宏的测试函数没有影响。

你当然也可以只使用一个经过的计时器来做这样的事情。

于 2014-06-04T17:14:24.203 回答