本主题说明如何准备 C++test 以执行现有的手动编写的 CppUnit 测试用例。在 C++test 中运行 CppUnit 测试用例可让您集中进行单元测试和报告。C++test 的报告和作者计算功能可帮助团队跟踪哪些测试用例失败,何时发生以及由谁负责解决每个失败。
该团队可以每晚在命令行模式下运行这些测试。为了立即获得有关他们的代码更改是否破坏了现有功能的反馈,每个开发人员都可以导入由于其修改而导致的回归失败。由于回归失败是针对负责它们的开发人员,因此修复这些错误的总体过程比所有开发人员都在查看相同的回归失败列表时要简化得多。
此外,C++test 提供了 CppUnit 测试用例的测试覆盖率信息,还可以在执行时执行运行时错误检测。
各节内容包括:
访问测试
配置 C++test 为访问您手动编写的 CppUnit 测试用例,请执行以下操作:
- 确保 CppUnit 测试用例文件在项目树中可用。
- 测试目录可以位于任何地方,只要它在项目树中可见即可。默认情况下,C++test 建议测试存储在项目的 tests 目录的子目录中。但是,您可以使用其他位置,只要您相应地修改“测试配置”的 “测试套件”文件搜索模式 设置 (在执行> 常规 选项卡中)即可。
- 如果您不想将测试存储在项目目录中,则可以添加一个文件夹,该文件夹链接到文件系统中其他位置存储的文件。执行以下操作:
- 选择 文件> 新建> 文件夹 (如果不可用,选择 文件> 新建> 其他, 选择 常规> 文件夹, 然后单击 下一步)。
- 单击 高级 按钮。
- 启用 链接至文件系统中的文件夹 选项。
- 输入或浏览到源文件的位置。
- 点击 完成。
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 文件的过程取决于项目的选项源(在 C++test 构建设置中设置):
- 如果项目设置为“使用 Managed Make C/C++ 项目的选项”,请右键单击包含 CppUnit 方法定义的源文件,选择属性,然后转到 C/C++ Build>从构建中排除。然后,对包含 CppUnit 类的头文件重复相同的配置。
- 如果项目设置为“手动指定所有选项”,请右键单击包含 CppUnit 方法定义的源文件,选择属性,然后转到Parasoft> C++test> 构建设置> 从构建中排除。然后,对包含 CppUnit 类的头文件重复相同的配置。
- 对于任何其他选项源,仅当文件的构建选项在原始构建系统(Makefile,.dsp等)中不可用时,该文件才会被排除。例如,当您打开 C++test 附带的 ATM 项目时,CppUnit 测试套件将自动从构建中排除,因为它不是 ATM 项目的 Makefile 的一部分。