本主题说明如何准备 C++test 以执行现有的手动编写的 CppUnit 测试用例。在 C++test 中运行 CppUnit 测试用例可让您集中进行单元测试和报告。C++test 的报告和作者计算功能可帮助团队跟踪哪些测试用例失败,何时发生以及由谁负责解决每个失败。
该团队可以每晚在命令行模式下运行这些测试。为了立即获得有关他们的代码更改是否破坏了现有功能的反馈,每个开发人员都可以导入由于其修改而导致的回归失败。由于回归失败是针对负责它们的开发人员,因此修复这些错误的总体过程比所有开发人员都在查看相同的回归失败列表时要简化得多。
此外,C++test 提供了 CppUnit 测试用例的测试覆盖率信息,还可以在执行时执行运行时错误检测。
各节内容包括:
访问测试
配置 C++test 为访问您手动编写的 CppUnit 测试用例,请执行以下操作:
- 确保 CppUnit 测试用例文件在项目树中可用。
- 测试目录可以位于任何地方,只要它在项目树中可见即可。默认情况下,C++test 建议测试存储在项目的 tests 目录的子目录中。但是,您可以使用其他位置,只要您相应地修改“测试配置”的 “测试套件”文件搜索模式 设置 (在执行> 常规 选项卡中)即可。
2。选择Parasoft>测试配置 以打开【测试配置】对话框。
3。选择代表您想要执行 CppUnit 测试的用户定义的测试配置的【测试配置】类别。
4。打开执行选项卡。
5。在常规 子选项卡中,根据需要修改测试套件文件搜索模式 设置,以便 C++test 可以找到并测试 CppUnit 测试。
- 请确保在目录路径的末尾添加星号(*)。
6。单击应用或关闭以提交修改的设置。
当您使用此测试配置运行测试时,将执行测试。
需求/限制
导入的测试用例必须满足以下条件:
- CppUnit 测试类必须具有 CPPUNIT_NS::TestFixture 或 CPPUNIT_NS::TestCase 作为其基类。
- CppUnit 测试类不能是模板类。
- CPPUNIT_TEST_SUITE_REGISTRATION(TestSuiteName)宏应插入 CppUnit 源文件(.cpp)中。
- 支持以下 CppUnit 宏:
- CPPUNIT_TEST_SUITE(ATestFixtureType)
- CPPUNIT_TEST_SUITE_END()
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION
- CPPUNIT_TEST(testMethod)
- CPPUNIT_TEST_EXCEPTION(testMethod, ExceptionType)
- CPPUNIT_TEST_FAIL(testMethod) CPPUNIT_ASSERT(condition)
- CPPUNIT_ASSERT_MESSAGE(message, condition)
- CPPUNIT_FAIL(message)
- CPPUNIT_ASSERT_EQUAL(expected, actual)
- CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(expected, actual, delta)
- CPPUNIT_ASSERT_THROW(expression, ExceptionType)
- CPPUNIT_ASSERT_NO_THROW(expression)
- CPPUNIT_TEST_SUITE_REGISTRATION(ATestFixtureType)
- 导入的 CppUnit 测试用例的上下文将设置为“项目”。
从构建中排除测试用例
如果给定的 CppUnit 文件没有从构建中排除,则:
- 将对该测试文件执行静态分析。
- 将从该测试文件中报告覆盖率。
- 将在该测试文件中存入函数调用。
- 将为该测试文件创建自动生成的测试。
因此,我们建议从构建中排除 CppUnit 文件。但是,这不是必需的。
要从构建中排除 CppUnit 文件:
- 右键单击包含 CppUnit 方法定义的源文件,然后从快捷菜单中选择属性 。
- 选择左侧的常规类别(在配置属性下)。
- 使用下拉组合框将从构建中排除 设置更改为 是。
- 右键单击包含 CppUnit 类和方法声明的头文件,然后从快捷菜单中选择属性。
- 选择左侧的常规类别(在配置属性下)。
- 使用下拉组合框将“从构建中排除”设置更改为是。