用途
qt-test-fixture-generator 用于为 Qt 应用程序生成完整的测试基础设施。它面向需要为 Qt 类编写单元测试、集成测试、GUI 测试或基准测试的开发者,帮助快速搭建测试夹具、模拟对象和构建集成。
主要能力
- 生成基于 QTest 的测试夹具
- 创建支持信号/槽的模拟 QObject
- 搭建使用 QFETCH 的数据驱动测试
- 配置基于 QTestLib 的 GUI 测试
- 生成 Qt 类的测试替身
- 设置基准测试
- 配置测试覆盖率报告
- 生成 CMake 测试集成
输入与输出
输入 Schema 为对象,包含以下属性:
- projectPath(字符串,必填):Qt 项目路径
- classToTest(字符串,必填):要为其生成测试的类名
- testType(枚举,默认 unit):可选值为 unit、integration、gui、benchmark
- mockDependencies(字符串数组):要模拟的类
- dataProviders(对象数组):每项包含 testName、columns、rows
- generateCoverage(布尔,默认 true)
输出 Schema 为对象,包含:
- success(布尔,必填)
- files(对象数组):每项包含 path 和 type(枚举:test、mock、cmake)
- runCommand(字符串)
使用方式
该技能根据输入生成测试夹具代码、模拟对象代码和 CMake 集成文件。生成的测试夹具示例包含测试生命周期方法(initTestCase、cleanupTestCase、init、cleanup)、单元测试、数据驱动测试、GUI 测试和基准测试。模拟对象示例展示了如何跟踪方法调用、配置返回值以及发出信号。CMake 集成示例展示了如何查找 Qt6 Test 组件、添加测试可执行文件、链接库、注册到 CTest 以及启用覆盖率。
运行测试的示例命令包括:
- ctest --test-dir build
- ./build/tests/tst_mywidget
- ./build/tests/tst_mywidget -v1
- ./build/tests/tst_mywidget testSetValue
- ./build/tests/tst_mywidget testSetValue:positive
- ./build/tests/tst_mywidget -o results.xml,xml
适用场景
适用于需要为 Qt 应用快速生成测试基础设施的场景,包括单元测试、集成测试、GUI 测试和基准测试。适合希望减少测试样板代码、隔离被测单元、验证信号发射以及进行数据驱动测试的开发者。
限制
资料中未提供关于收费、价格、平台支持范围、具体效果或性能的说明。该技能的具体实现细节、依赖环境要求以及与其他工具的兼容性暂未提供。