QTest
鼓励您将单元测试组织为单独的可执行文件。为此有一个特殊的宏,它会生成 main 函数:QTEST_MAIN
.
我发现这种方法不是很干净,一次运行所有测试更有用。所以我搜索了是否有这样做的可能性,我发现有几个人提出了相同的解决方案:
http://www.davideling.it/2014/01/qtest-multiple-unit-test-classes/
https://alexhuszagh.github.io/2016/using-qttest-effectively/
解决方案是放弃使用QTEST_MAIN
宏并编写自己的main
函数来执行要执行的测试:
int main(int argc, char *argv[])
{
int status = 0;
{
TestA ta;
status |= QTest::qExec(&ta, argc, argv);
}
{
TestB tb;
status |= QTest::qExec(&tb, argc, argv);
}
return status;
}
我发现这是一个好主意,但是,有一个问题。Qt 的文档有qExec
一部分听起来像这样:
对于独立测试应用程序,不应多次调用此函数,因为用于将测试输出记录到文件和执行单个测试函数的命令行选项将无法正确运行。
这些人透露的解决方案只是建议:执行qExec
多次。谁能向我解释到底是command-line options for logging test output to files and executing individual test functions will not behave correctly
什么意思?
这种方法究竟会出现什么问题?