创建您自己的代码覆盖率插件

本主题介绍如何创建代码覆盖率插件。您应熟悉 Silk Central 基线概念。在 Silk Central 中,每次运行之前都需要基线。基线包括测试应用程序中的所有命名空间/程序包/类/方法。

注: Silk Central API 需要返回用于代码覆盖率运行的 XML 文件。这意味着,如果代码覆盖率工具在数据库中存储其代码覆盖率信息,您将需要采取其他步骤检索数据。
注: 不支持多个执行服务器根据同一代码分析框架运行测试。
  1. 将库 scc.jar 添加到您的类路径,因为它包含必须扩展的接口。可以在 Silk Central 安装目录的 lib 目录中找到 JAR 文件。
  2. 添加以下两个导入语句:
    import com.segue.scc.published.api.codeanalysis.CodeAnalysisProfile;
    import com.segue.scc.published.api.codeanalysis.CodeAnalysisProfileException;
    import com.segue.scc.published.api.codeanalysis.CodeAnalysisResult;
  3. 创建实现 CodeAnalysisProfile 的类。
  4. 从代码覆盖率界面中添加所有需要的方法,如以下步骤所示。您可参阅示例接口类了解解其定义并手动实现方法,也可复制和粘贴为您提供了导入和方法定义的主题示例配置文件类。
    注: 您将写入的下述步骤中的方法实际上会在 Silk Central 需要时调用。这意味着您将无法直接调用这些方法。
  5. 代码 getBaseline。此方法应返回包含应用程序中所有命名空间/程序包/类/方法的 XML 文件。请参阅示例 XML 数据主题文件,以了解文件格式。您应使用示例 XSD 文件验证 XML。请参阅代码覆盖率 XSD 主题,以了解 XSD。

    此函数将在开始覆盖之前调用并由开始测试运行的 Silk Central 执行服务器触发,以开始代码分析并返回所有要覆盖的对象。输出结果需要使用 CA-Framework 安装文件夹中包含的 XML 架构中指定的格式转换为 XML。

  6. 代码 startCoverage。此调用将命令代码覆盖率工具开始收集数据。如果已开始,则返回 true。

    Silk Central 代码覆盖率框架将在完成 getBaseLine() 方法之后调用此函数。您应在此让代码覆盖率工具开始收集代码覆盖率数据。

  7. 代码 stopCoverage。此调用将命令代码覆盖率工具停止收集数据。如果成功,则返回 true。

    此函数将在 startCoverage 之后调用,由完成测试运行的 Silk Central 执行服务器触发,以停止代码分析。

  8. 代码 getCoverage。此函数将返回 XML 文件,其中包括从 startCoverage 和 stopCoverage 方法之间收集到的数据。请参阅示例 XML 数据主题,以了解文件格式。您应使用示例 XSD 文件验证 XML。请参阅代码覆盖率 XSD 主题,以了解 XSD。

    此函数将在 stopCoverage() 之后调用并返回已收集的所有覆盖率数据。输出结果需要使用 XML 架构中指定的格式转换为 XML。

  9. 代码 GetName。此函数将提供用于引用代码覆盖率工具的名称。例如,此值将用作编辑代码分析设置对话框上的代码分析配置文件列表中的一个值。

    此函数首先由 Silk Central 代码覆盖率框架调用。插件名称显示在 Silk Central 中的代码覆盖率列表中。

  10. 将插件生成 jar 文件,然后将 jar 文件压缩成 zip 文件。
  11. 将插件部署到以下位置:
    • Silk Central 安装文件夹的 Plugins 目录中。
    • CA-Framework 安装的 Plugins 目录中。