QTestLib中的单元测试 - 在类/所有测试中运行单个测试/测试

时间:2010-04-21 20:30:20

标签: unit-testing qt qtestlib

我刚刚开始使用QTestLib。我已浏览manualtutorial。虽然我理解如何创建测试,但我还没有得到如何使这些测试方便运行。我的单元测试背景是NUnit和MSTest。在这些环境中,只需单击右键,就可以在运行单个测试或单个测试类中的所有测试或整个项目中的所有测试之间切换(至少使用GUI)。

我在QTestLib中看到的就是你使用QTEST_MAIN宏在一个类中运行测试,然后分别编译和测试每个文件;或者使用QTest::qExec()中的main()来定义要测试的对象,然后手动更改它并在需要添加/删除测试类时重新编译。

我确定我错过了什么。我希望能够轻松:

  • 运行单一测试方法
  • 在整个班级中运行测试
  • 运行所有测试

其中任何一个都会调用相应的设置/拆卸功能。

编辑:赏金现已上市。必须有更好的方法,或者为您或其他东西处理它的GUI测试运行器。如果您在测试驱动的环境中使用QtTest,请告诉我什么对您有用。 (脚本,测试跑步者等)

2 个答案:

答案 0 :(得分:6)

您可以通过将测试名称传递为command line arguments来运行选定的测试用例(测试方法):

myTests.exe myCaseOne myCaseTwo

它也将运行所有的inits / cleanup。不幸的是,不支持通配符/模式匹配,所以要运行以给定字符串开头的所有情况(我假设你的意思是“在整个类中运行测试”),你必须创建脚本(windows batch / bash / perl / whatever)调用:

myTests.exe -functions

解析结果并使用第一种语法运行选定的测试。

要运行所有情况,只需不要传递任何参数:

myTests.exe

答案 1 :(得分:1)

OP请求的三个功能现已集成到Qt Creator

将自动扫描项目以进行测试,并在测试窗格中显示它们。屏幕截图左下方:

Qt Creator screenshot

单击复选框可以启用每个测试和相应的数据。 上下文菜单允许运行所有测试,类的所有测试,仅运行选定或仅一个测试。 按要求。

测试结果也可以从Qt Creator获得。颜色指示器将显示每个测试的通过/失败,以及调试消息等附加信息。

结合Qt Creator,每个测试用例使用QTEST_MAIN宏都可以正常工作,因为Qt Creator会自动调用每个编译的可执行文件。

有关更详细的概述,请参阅Qt Creator手册的Running Autotests部分。