CruiseControl 集成

CruiseControl 是一个支持持续构建和集成的框架。它包括但不限于电子邮件通知、Ant 和各种源代码控制工具的插件。提供了一个网页界面来查看当前和以前构建的详细信息。

可以使用这里描述的插件从CruiseControl持续构建中运行Squish测试。

获得CruiseControl插件

CruiseControl插件可在以下位置获取:https://resources.qt.io/hubfs/Squish/squish-cc-plugin_latest.zip

安装CruiseControl插件

要安装插件,只需解压zip存档并将jar文件复制到CC_HOME\lib

使用CruiseControl插件

以下是CruiseControl发行版中使用的示例

<cruisecontrol>
  <project name="connectfour">

    <property environment="env" />

    <listeners>
      <currentbuildstatuslistener file="logs/${project.name}/status.txt" />
    </listeners>

    <bootstrappers>
      <antbootstrapper anthome="${env.ANT_HOME}" buildfile="projects/${project.name}/build.xml" target="clean" />
    </bootstrappers>

    <modificationset quietperiod="30">
      <!-- touch any file in connectfour project to trigger a build -->
      <filesystem folder="projects/${project.name}" />
    </modificationset>

    <schedule interval="300">
      <ant anthome="${env.ANT_HOME}" buildfile="projects/${project.name}/build.xml" />
    </schedule>

    <log>
      <merge dir="projects/${project.name}/target/test-results" />
    </log>

    <publishers>
      <onsuccess>
        <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar" />
      </onsuccess>
    </publishers>

  </project>
</cruisecontrol>

在使用Squish CruiseControl插件之前,必须声明它。最佳做法是将它声明为项目的第一个子项。如果我们将这个示例应用到上面的示例中,现在的前几行将看起来像这样

<cruisecontrol>
  <project name="connectfour">

    <plugin name="squishtest" classname="com.froglogic.squish.cc.builders.SquishTestBuilder" />
  ...

要运行Squish测试,必须在调度部分进行以下更改

...
<schedule interval="300">
  <composite>
    <ant anthome="${env.ANT_HOME}" buildfile="projects/${project.name}/build.xml" />
    <squishtest
      suite="C:\Squish\examples\qt\addressbook\suite_py"
      path="C:\Squish" />
  </composite>
</schedule>
...

由于我们在这个情况下有多个任务,因此需要复合任务——不仅要执行ant构建文件,还要运行Squish测试。您也可以首先运行squishtest或将squishtest使用多次以运行多个测试套件。

CruiseControl XML参考

本节概述了安装CruiseControl插件后可以使用的标签。

squishtest

squishtest标签可以用来运行Squish测试用例或测试套件。下表显示了可以使用的属性

属性描述必需
suite要运行的Squish套件的绝对路径。
testcase已弃用 仅从套件中运行一个测试用例,仅用于向后兼容性。要运行整个测试套件,请取消选中此属性。要显式指定要执行的测试用例,请使用testcase元素。
pathSquish根目录的绝对路径。仅当未在squishtest标签中设置时。
host运行squishserver的机器的主机名。取消选中此参数以让插件自动启动squishserver。
portsquishserver正在监听的端口号。取消选中此参数以让插件自动启动squishserver。
snoozeFactor运行Squish测试时使用的暂停因子,默认为1。
reportdir已弃用 测试报告应输出的目录,仅用于向后兼容性。要生成报告,请使用report元素。
resultdir用于保存测试结果的目录的绝对路径,对应于squishrunner的--resultdir,该选项在执行测试用例(高级)中进行了说明。
webbrowser执行Web测试时所使用的浏览器。支持的值列在squishrunner的执行测试用例(高级)中的选项中。
webbrowserargs执行Web测试时传递给所使用浏览器的命令行参数。
failOnVerificationFail如果设置为 '是',则在 Squish 验证失败或测试执行过程中发生错误时,构建将被标记为失败。默认为 '否'。

注意:当在 Squish plugin 绑定标签中设置表格中提到的属性时,它们将作为默认值。这意味着这些属性是从 plugin 标签继承的,并在必要时可以在 squishtest 标签中覆盖。

testcase

可以使用 testcase 标签来指定应显式执行的测试用例。它必须是 squishtest 标签的子标签。

属性描述必需
名称要执行的测试用例的名称。

以下是使用 testcase 标签在 CruiseControl 配置文件中的示例

<cruisecontrol>
  <project name="connectfour">
    ...
    <schedule interval="300">
      <composite>
        <ant anthome="${env.ANT_HOME}" buildfile="projects/${project.name}/build.xml" />
        <squishtest
          suite="C:\Squish\examples\qt\addressbook\suite_py"
          path="C:\Squish">
          <testcases>
            <testcase name="tst_adding" />
            <testcase name="tst_general" />
          </testcases>
        </squishtest>
      </composite>
    </schedule>
    ...

report

可以使用 report 标签来指定应生成哪些报告。它必须是 squishtest 标签的子标签。

属性描述必需
格式要生成的报告格式。支持值列在 squishrunner 的 --reportgen 选项中,在 执行测试用例(高级) 页面。
文件报告要写入的文件的绝对路径。

以下是使用 report 标签在 CruiseControl 配置文件中的示例

<cruisecontrol>
  <project name="connectfour">
    ...
    <schedule interval="300">
      <composite>
        <ant anthome="${env.ANT_HOME}" buildfile="projects/${project.name}/build.xml" />
        <squishtest
          suite="C:\Squish\examples\qt\addressbook\suite_py"
          path="C:\Squish">
          <testcases>
            <testcase name="tst_adding" />
            <testcase name="tst_general" />
          </testcases>
          <reports>
            <report format="xml2.2" file="C:\xml_reports\addressbook.xml" />
            <report format="xmljunit" file="C:\junit_reports\addressbook.xml" />
          </reports>
        </squishtest>
      </composite>
    </schedule>
    ...

©2024 Qt 公司 Ltd. 本文档的贡献的版权属于其各自的所有者。
本提供的文档按照免费软件基金会发布的 GNU 自由文档许可协议版本 1.3 的条款授权。
Qt及其相应标志是芬兰的 Qt 公司和/或世界其他国家的商标。所有其他商标均为其各自所有者的财产。