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

Dav*_*eer 10 qt unit-testing qtestlib

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

我在QTestLib中看到的就是你使用QTEST_MAIN宏在一个类中运行测试,然后分别编译和测试每个文件; 或用QTest::qExec()main()定义哪些对象进行测试,然后手动更改,当你想添加/删除测试类重新编译.

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

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

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

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

cha*_*lup 6

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

myTests.exe myCaseOne myCaseTwo
Run Code Online (Sandbox Code Playgroud)

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

myTests.exe -functions
Run Code Online (Sandbox Code Playgroud)

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

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

myTests.exe
Run Code Online (Sandbox Code Playgroud)