添加新的测试套件

添加用户定义的测试用例:

  1. 如果尚未这样做,请为您的测试创建一个新目录。
    • 测试目录可以位于任何地方,只要它在项目树中可见即可。默认情况下,C++test 建议测试存储在项目的 tests 目录的子目录中。但是,您可以使用其他位置,只要您相应地修改【测试配置】的 测试套件文件搜索 模式 设置 (在执行> 常规 选项卡中)即可。

    • 如果您不想将测试存储在项目目录中,则可以添加一个文件夹,该文件夹链接到文件系统中其他位置存储的文件。执行以下操作:
        1. 选择文件>新建> 文件夹 (如果这不可用,选择文件> 新建> 其他, 选择 通用>文件夹,然后单击下一步)。
        2. 单击 高级 按钮。

        3. 启用 链接至文件系统中的文件夹 选项。

        4. 输入或浏览到源文件的位置。

        5. 点击 完成

       2。打开测试套件向导,如下所示:

    1. 在项目树中选择您的测试目录。
    2. 右键单击选择,然后在快捷菜单中选择新建> 其他 。将打开一个向导。

               с.选择Parasoft> C++test> 测试套件, 然后单击下一步

     3。在【测试套件向导】对话框中输入测试套件参数。可用参数有:

    • 测试套件名称: 确定测试套件名称。
    • 测试套件位置: 确定测试套件位置
    • 测试套件文件: 报告测试套件文件的路径。
    • 测试套件语言: 确定测试套件是用 C 还是 C++ 实现的。
    • 已测试文件: 将测试套件上下文设置为指定的测试源文件。指定的文件将被设置为 CPPTEST_CONTEXT 宏,它将给定的测试套件文件与指定的源文件相关联。
      • 如果在您启动向导时选择了一个文件,则将在此处指定该文件。
      • 如果在启动向导时选择了一个项目,则不会指定任何上下文,并且测试套件将在项目范围内(这意味着只有在运行该项目的所有测试时才会执行它,或者如果它被选为测试文件)。当它被选为测试文件(并且没有上下文)时,C++test 假定它具有项目上下文,并准备项目中的所有文件进行链接。
    • 测试套件模式: 确定测试套件是作为包含的测试套件还是作为独立的测试套件实现。C++test 插桩两种类型的测试套件;它可以访问私有/受保护的类成员。
      • 包含的测试套件物理包含在生成的测试工具源文件中的一个。“包含的”测试套件与插桩代码组合并编译以形成单个对象文件。所有自动生成的测试套件都包含在测试套件中。可以包含其他头文件,并且可以在原始头文件中定义宏定义。但是,包含的测试套件不需要包含任何头文件,除非使用的类型在原始测试的源文件中不可见。通常,这仅在您修改生成的测试(例如,包含测试工厂等)时才需要。
      • 独立的测试套件单独编译并与可测试上下文的测试可执行文件链接。任何其他头文件都必须直接包含在这些测试套件中。可以跟踪包含头文件的覆盖率信息。

     4。(可选)如果此时要指定测试用例(即 C++test 在测试套件中注册它们并为测试添加骨架框架),请单击下一步,然后使用控件添加测试用例名称和指定添加它们的顺序。
     5。点击 完成

将测试用例添加到现有测试套件

将新测试用例添加到现有测试套件:

  1. 在项目树中选择测试套件文件,或者在编辑器中打开它,然后右键单击所选内容,然后从快捷菜单中选择Parasoft> C++test> 添加测试用例模板。或者,右键单击测试用例资源管理器中的测试套件,然后选择 添加新建> 测试用例模板

  2. 输入测试用例的名称。  将添加新的测试用例,并相应地修改测试套件。
  3. 在编辑器中打开测试套件源文件,输入测试用例定义,并根据需要进行其他修改。您可以

      • 内容辅助功能可帮助您添加宏和后置条件。例如,要添加后置条件模板,键入 CPPTEST_POST_CONDITION,将光标放在 N 之后,按 Ctrl + Space,然后选择所需的后置条件。要添加断言模板,键入 CPPTEST_ASSERT,将光标放在 T 之后,按 Ctrl + Space ,然后选择所需的断言。请务必自定义添加的模板。

    • 使用头文件中定义的包含指令和宏定义。
    • 使用 #include 指令构建测试可执行文件时,提示 C++test 包含其他文件。
    • 通过更改 CPPTEST_CONTEXT 宏来更改测试套件上下文,该宏将给定的测试套件文件与指定的源文件相关联。只能指定一个源文件。如果未指定上下文,则每当执行项目时都会执行测试套件。
      • 如果在开始执行测试之前在项目树中选择了源文件或目录(例如源文件),C++test 将扫描在测试配置的测试搜索路径中指定的所有测试目录。将执行与所选上下文匹配的所有测试套件。
      • 如果选择了整个项目,则将执行测试路径上的所有测试套件。
      • 如果选择了测试套件或单个测试,则使用 CONTEXT 宏回溯到与该测试套件相关的源文件。只会执行选定的测试套件。
      • 如果使用相对路径,它们必须以 "./” 或 "../” 开头。

     4。保存修改后的文件。

测试驱动开发(TDD)技巧

生成的模板中的测试用例设置为失败。对于 TDD,您可以编写实现的源代码,然后在您对测试感到满意时删除失败宏。

产生新进程的 cout 语句

如果您有使用 cout 语句生成其他进程的单元测试,请使用 endl 而不是换行符来结束 cout 语句。这样,输出会立即刷新到控制台。

例如,使用:

  • cout << "xyz" << endl;

而不是:

  • cout << "xyz\n";
  • No labels