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元素。 | 否 |
path | Squish根目录的绝对路径。 | 仅当未在squishtest标签中设置时。 |
host | 运行squishserver的机器的主机名。取消选中此参数以让插件自动启动squishserver。 | 否 |
port | squishserver正在监听的端口号。取消选中此参数以让插件自动启动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 公司和/或世界其他国家的商标。所有其他商标均为其各自所有者的财产。