11

我刚开始使用 QTestLib。我已经阅读了手册教程。尽管我了解如何创建测试,但我只是不知道如何使这些测试便于运行。我的单元测试背景是 NUnit 和 MSTest。在那些环境中,只需单击右键,就可以在运行单个测试、单个测试类中的所有测试或整个项目中的所有测试之间切换是微不足道的(至少使用 GUI)。

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

我确定我错过了一些东西。我希望能够轻松:

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

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

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

4

2 回答 2

6

您可以通过将测试名称作为命令行参数传递来仅运行选定的测试用例(测试方法):

myTests.exe myCaseOne myCaseTwo

它也将运行所有初始化/清理。不幸的是,不支持通配符/模式匹配,因此要运行以给定字符串开头的所有案例(我假设这就是“在整个类中运行测试”的意思),您必须创建脚本(windows批处理/ bash/perl/whatever)调用:

myTests.exe -functions

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

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

myTests.exe
于 2010-04-21T21:31:03.360 回答
1

OP 要求的三个功能现在已集成到Qt Creator中。

该项目将被自动扫描以进行测试,它们会出现在“测试”窗格中。截图左下角:

Qt Creator 截图

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

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

与 Qt Creator 结合使用时,QTEST_MAIN每个测试用例的宏的使用都会很好地工作,因为每个编译的可执行文件都由 Qt Creator 自动调用。

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

于 2018-01-18T08:17:05.743 回答