蚂蚁集成

Apache Ant 自动化软件构建过程。它与 make 类似,但它是用 Java 编写的,并且需要 Java 运行时环境来执行。Ant 的跨平台性相当于 Java 的跨平台性,非常适合用于构建 Java 项目。

Ant 的 Squish 插件允许从 Ant 构建文件运行 Squish 测试。

获取 Ant 插件

Ant 插件可以从以下位置获得:https://resources.qt.io/hubfs/Squish/squish-ant-plugin_latest.zip

安装 Ant 插件

解压 zip 归档后,您可以通过以下方式安装 Ant 插件

  • 将 jar 文件复制到 ANT_HOME/lib。这通常需要管理员权限。
  • 将 jar 文件复制到 USER_HOME/.ant/lib
  • 调用 ant 时,使用 -lib 选项指定包含 Squish 插件的文件夹。

有关安装外部 Ant 库的更多信息,请参阅 Ant 安装手册

使用 Ant 插件

以下是一个典型的 Ant build.xml 文件

<project name="MyProject" basedir="." xmlns:squish="antlib:com.froglogic.squish.ant">
  <description>
    simple example build file
  </description>

  <!-- set global properties for this build -->
  <property name="src" location="src" />
  <property name="build" location="build" />
  <property name="dist" location="dist" />

  <target name="init">
    <!-- create the time stamp -->
    <tstamp />
    <!-- create the build directory structure used by compile -->
    <mkdir dir="${build}" />
  </target>

  <target name="compile" depends="init" description="compile the source">
    <!-- compile the Java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}" includeantruntime="false" />
  </target>

  <target name="dist" depends="compile" description="generate the distribution">
    <!-- create the distribution directory -->
    <mkdir dir="${dist}/lib" />

    <!-- put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}" />
  </target>

  <target name="test" depends="compile" description="run the tests">
    <squish:runtest
      suite="C:\Squish\examples\qt\addressbook\suite_py"
      path="C:\Squish" />
  </target>

  <target name="clean" description="clean up">
    <!-- delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}" />
    <delete dir="${dist}" />
  </target>
</project>

要使用插件功能,构建文件必须指定 squish 命名空间。例如

<project name="MyProject" basedir="." xmlns:squish="antlib:com.froglogic.squish.ant">
  <description>
    simple example build file
  </description>
  ...

在这种情况下,可能有必要将 Squish 测试作为单独的目标进行运行,如下所示

...
<target name="test" depends="compile" description="run the tests">
  <squish:runtest
    suite="C:\Squish\examples\qt\addressbook\suite_py"
    path="C:\Squish" />
</target>
...

当使用目标 test 运行 Squish 测试时,将产生以下输出(以上示例)

$ ant test
Buildfile: C:\ant-test\build.xml

init:

compile:

test:
[squish:runtest] Squish Ant Plugin version 5.0
[squish:runtest] Tests run : 3, Failures : 0, Errors : 0, Fatals : 0
[squish:runtest] Running test cases took 17 seconds

BUILD SUCCESSFUL
Total time: 20 seconds

Ant 插件 XML 参考

本节提供了在安装 Ant 插件后可以使用的基础标签的概述。

squish:config

可以使用 squish:config 标签作为设置运行测试时应该使用的 Squish 安装路径的便捷方式。下表显示了可以使用的属性

属性描述
pathSquish 根目录的绝对路径。
host运行 squishserver 的主机名。省略此属性可以由插件自动启动 squishserver。
portsquishserver 监听的端口号。省略此属性可以由插件自动启动 squishserver。
snoozefactor运行 Squish 测试时要使用的 snooze 因子,默认为 1。
reportdir弃用 测试报告应输出的目录,仅用于向后兼容。要生成报告,请改用 squish:report 元素。
webbrowser执行 Web 测试时要使用的浏览器。支持的值列在 squishrunner 的 --webbrowser 选项中,位置在 执行测试用例(高级)
webbrowserargs执行 Web 测试时传递给使用的浏览器的命令行参数。

以下是在 Ant 构建文件中使用 squish:config 标签的示例

<project name="MyProject" basedir="." xmlns:squish="antlib:com.froglogic.squish.ant">
    <squish:config path="C:\Squish" />
    ...

如果像上面的示例那样在文件开头使用 squish:config 标签,则设置的路径将用于所有目标中的 Squish 测试。为了更精细的控制,可以在目标容器内部使用 squish:config 标签,此时路径仅适用于该容器中的测试。

注意:您还可以在squish:runtest标签中设置Squish路径,但如果要运行许多Squish测试并且它们都使用相同的Squish安装,则使用squish:config标签会更方便。

squish:runtest

以下表格显示了可以使用的属性

属性描述必需
套件要运行的Squish套件的绝对路径。
测试用例已弃用要运行的一组测试用例(从套件中选择),仅为了向后兼容。要运行整个测试套件,请省略此属性。要显式指定应执行的测试用例,请使用squish:testcase元素。
pathSquish 根目录的绝对路径。如果没有在squish:config标签中设置。
host运行squishserver的机器的计算机名。省略此参数以让插件自动启动squishserver。
portsquishserver监听的端口号。省略此参数以让插件自动启动squishserver。
snoozefactor运行 Squish 测试时要使用的 snooze 因子,默认为 1。
resultdir保存测试结果的目录的绝对路径,对应于squishrunner的--resultdir,在执行测试用例(高级)中有文档说明。
webbrowser执行 Web 测试时要使用的浏览器。支持的值列在 squishrunner 的 --webbrowser 选项中,位置在 执行测试用例(高级)
webbrowserargs执行 Web 测试时传递给使用的浏览器的命令行参数。
haltonerror当发生测试错误或测试严重错误时是否停止构建,默认值为false
haltonfailedverification当测试验证失败时是否停止构建,默认值为false

注意:squish:runtest标签中设置的属性将覆盖squish:config标签中设置的属性。

以下是在Ant构建文件中使用squish:runtest标签的示例

<project name="MyProject" basedir="." xmlns:squish="antlib:com.froglogic.squish.ant">
  ...
  <target name="test" depends="compile" description="run the tests">
    <squish:runtest
      suite="C:\Squish\examples\qt\addressbook\suite_py"
      path="C:\Squish" />
  </target>
  ...

为了让squish:runtest标签正常工作,suite属性必须指示一个有效的Squish套件。此外,必须知道用于运行测试的Squish安装的绝对路径,可以通过使用squish:runtest标签的path属性或squish:config标签的path属性来实现。当ant过程运行Squish测试时,它会等待测试完成。结果会报告在标准输出上(例如,控制台)。

squish:testcase

squish:testcase标签可以用于显式指定哪些测试用例应被执行。它必须是squish:runtest标签的子标签。

以下是在Ant构建文件中使用squish:testcase标签的示例

<project name="MyProject" basedir="." xmlns:squish="antlib:com.froglogic.squish.ant">
  ...
  <target name="test" depends="compile" description="run the tests">
    <squish:runtest
      suite="C:\Squish\examples\qt\addressbook\suite_py"
      path="C:\Squish"
      <squish:testcase>tst_adding</squish:testcase>
      <squish:testcase>tst_general</squish:testcase>
    </squish:runtest>
  </target>
  ...

squish:report

squish:report标签可以用于指定要生成哪些报告。

属性描述必需
格式要生成的报告格式。在执行测试用例(高级)中指出,列出了squishrunner的--reportgen选项的受支持值。

以下是在Ant构建文件中使用squish:report标签的示例

<project name="MyProject" basedir="." xmlns:squish="antlib:com.froglogic.squish.ant">
  ...
  <target name="test" depends="compile" description="run the tests">
    <squish:runtest
      suite="C:\Squish\examples\qt\addressbook\suite_py"
      path="C:\Squish"
      <squish:testcase>tst_adding</squish:testcase>
      <squish:testcase>tst_general</squish:testcase>
      <squish:report format="xml2.2">C:\xml_reports\addressbook.xml</squish:report>
      <squish:report format="xmljunit">C:\junit_reports\addressbook.xml</squish:report>
    </squish:runtest>
  </target>
  ...

©2024Qt公司有限公司。本文档中包含的贡献文档属于各自的版权所有者。
本文档是根据GNU自由文档许可协议版本1.3的条款授予的,由自由软件基金会发布。
Qt和相应的标志是芬兰和其他国家的Qt公司的商标。所有其他商标都是其各自所有者的财产。