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

13
我刚开始使用QTestLib。我已经阅读了手册教程。虽然我知道如何创建测试,但我不知道如何使这些测试方便地运行。我的单元测试背景是NUnit和MSTest。在这些环境中,通过点击正确的按钮,轻松地在单个测试、单个测试类中运行所有测试或在整个项目中运行所有测试(至少使用GUI)。

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

我确定我漏掉了什么。我想轻松地做到以下几点:

  • 运行单个测试方法
  • 运行整个类中的测试
  • 运行所有测试

其中任何一项都会调用适当的设置/拆卸函数。

编辑:现在提供悬赏。肯定有更好的方法,或者有一个处理此问题的GUI测试运行程序之类的东西。如果您正在测试驱动的环境中使用QtTest,请告诉我您正在使用什么方法。(脚本、测试运行程序等)


你应该看一下:https://dev59.com/4mLVa4cB1Zd3GeqPtiVr#10165709 - muenalan
2个回答

8

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

myTests.exe myCaseOne myCaseTwo

它将运行所有的初始化/清理工作。不幸的是,它不支持通配符/模式匹配,因此要运行所有以给定字符串开头的用例(我假设这就是你所谓的“在整个类中运行测试”),你需要创建一个脚本(Windows批处理/bash/perl/任何其他语言)来调用:

myTests.exe -functions

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

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

myTests.exe

1

OP所请求的三个功能,现在已经集成到Qt Creator中。

项目将自动扫描测试,并在测试窗格中显示。如截图左下角所示:

Qt Creator screenshot

点击复选框即可启用每个测试及其相应的数据。上下文菜单允许运行所有测试、运行某个类别的所有测试、仅运行所选测试或仅运行一个测试。

测试结果也可以从Qt Creator中查看。颜色指示器将显示每个测试的通过/失败情况,以及调试信息等其他信息。

与Qt Creator结合使用时,为每个测试用例使用QTEST_MAIN宏将非常有效,因为每个编译后的可执行文件都会自动由Qt Creator调用。

有关更详细的概述,请参阅Qt Creator手册的运行自动测试部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接