Maven集成

Maven是一个基于项目对象模型(POM)概念的软件项目管理和分析工具。Maven可以从一个中央信息管理项目的构建、报告和文档。

本页面描述的 Squish Maven 插件可以让你在任何 Maven 阶段运行 Squish 测试。

获取 Maven 插件

Maven 插件可以从以下地址获取:download.froglogic.com/resources/squish-maven-plugin_latest.zip

安装 Maven 插件

要安装插件,首先解压缩包,然后进入包目录。在 Windows 上执行安装,运行 install-squish-plugin.bat 程序。在类 Unix 系统上,运行 install-squish-plugin.sh 程序。

使用 Maven 插件

要从你的 POM 文件中使用插件,请将 squish-plugin 添加到插件部分

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>com.froglogic.squish.maven</groupId>
        <artifactId>squish-plugin</artifactId>
        <executions>
          <execution>
            <id>book-test</id>
            <phase>test</phase>
            <goals>
              <goal>run-test</goal>
            </goals>
            <configuration>
              <path>C:\Squish</path>
              <testsuite>C:\Squish\examples\qt\addressbook\suite_py</testsuite>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

以下示例在测试阶段运行 suite_py 测试套件并产生以下输出

[INFO] [squish:run-test {execution: book-test}]
[INFO] Squish Maven Plugin version 4.0
[INFO]   path=C:\Squish
[INFO]   testsuite=C:\Squish\examples\qt\addressbook\suite_py
...
[INFO] Tests run : 3, Failures : 0, Errors : 0, Fatals : 0
[INFO] Running test cases took 21 seconds

Maven 插件 XML 参考

安装 Maven 插件后,可以使用 run-test 目标。

run-test

使用 run-test 目标来运行整个 Squish 测试套件或单个测试用例。下表显示了可以在 configuration 元素内使用的元素

元素描述必需
testsuite要运行的 Squish 套件的绝对路径。
testcase已弃用 从套件中运行的 单个 测试用例,仅用于向后兼容。要运行整个测试套件,请省略此元素。要显式指定要执行的测试用例,请使用 testCases 元素。
pathSquish 根目录的绝对路径。
host运行 squishserver 的机器的主机名。省略此参数将使插件自动启动 squishserver。
portsquishserver 监听端口号。省略此参数将使插件自动启动 squishserver。
snoozefactor运行 Squish 测试时使用的 snooze 因子,默认为 1。
reportdir已弃用 测试报告应输出的目录,仅用于向后兼容。要生成报告,请使用 reports 元素。
resultDir用于保存测试结果的目录的绝对路径,对应于 squishrunner 的 --resultdir,该选项在 执行测试用例(高级) 中有文档记录。
squishReport已弃用 保存到 resultDir 文件夹的 Squish XML 报告的文件名,仅用于向后兼容。要生成 Squish XML 报告,请使用 reports 元素。
junitReport已弃用 保存到 resultDir 文件夹的 Squish JUnit 报告的文件名,仅用于向后兼容。要生成 Squish JUnit 报告,请使用 reports 元素。
webbrowser执行 Web 测试时使用的浏览器。支持的值在 squishrunner 的 --webbrowser 选项中列出,位于 执行测试用例(高级)
webbrowserargs执行 Web 测试时传递给所使用浏览器的命令行参数。
ignoreFatals如果 Squish 测试包含错误或致命异常,不要抛出异常以避免中断 Maven 执行。默认值为 false,但可以设置为 true
ignoreFails如果 Squish 测试包含失败,不要抛出异常以避免中断 Maven 执行。默认值为 true,但可以设置为 false
abortOnFail如果 Squish 测试包含失败,则抛出异常以中断 Squish 测试执行。默认值为 false,但可以设置为 true

testCases

可以使用 testCases 元素来指定要执行的测试用例。省略此元素将运行整个测试套件。

元素描述
testCases包含作为子元素的 testCase 元素。
testCase要执行的测试用例的名称,必须是 testCases 元素的子元素。

以下是在 POM 文件中使用 testCases 元素的示例

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>com.froglogic.squish.maven</groupId>
        <artifactId>squish-plugin</artifactId>
        <executions>
          <execution>
            <id>book-test</id>
            <phase>test</phase>
            <goals>
              <goal>run-test</goal>
            </goals>
            <configuration>
              <path>C:\Squish</path>
              <testsuite>C:\Squish\examples\qt\addressbook\suite_py</testsuite>
              <testCases>
                <testCase>tst_adding</testCase>
                <testCase>tst_general</testCase>
              </testCases>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

tagFilters

可以使用 tagFilters 元素来执行与给定标签过滤器匹配的测试脚本或 BDD场景。省略此元素将运行整个测试套件。

元素描述
tagFilters包含作为子元素的 tags 元素。
tagsCNaz要执行的测试用例的标签。语义与 squishrunner 的 --tags 参数相同。必须是 tagFilters 元素的子元素。

以下是在 POM 文件中使用 tagFilters 元素的示例,其中执行了同时标记为 foobar 的所有场景或测试脚本。

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>com.froglogic.squish.maven</groupId>
        <artifactId>squish-plugin</artifactId>
        <executions>
          <execution>
            <id>book-test</id>
            <phase>test</phase>
            <goals>
              <goal>run-test</goal>
            </goals>
            <configuration>
              <path>C:\Squish</path>
              <testsuite>C:\Squish\examples\qt\addressbook\suite_py</testsuite>
              <tagFilters>
                <tags>foo</tags>
                <tags>bar</tags>
              </tagFilters>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

scriptArgs

可以使用 scriptArgs 元素将脚本参数传递给测试脚本。这类似于使用 squishrunner 的 --scriptArgs 参数。

元素描述
scriptArgs包含作为子元素的 arg 元素。
arg包含要传递给测试脚本的参数。必须是 scriptArgs 元素的子元素。

以下是在 POM 文件中使用 scriptArgs 元素的示例

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>com.froglogic.squish.maven</groupId>
        <artifactId>squish-plugin</artifactId>
        <executions>
          <execution>
            <id>book-test</id>
            <phase>test</phase>
            <goals>
              <goal>run-test</goal>
            </goals>
            <configuration>
              <path>C:\Squish</path>
              <testsuite>C:\Squish\examples\qt\addressbook\suite_py</testsuite>
              <scriptArgs>
                <arg>--username</arg>
                <arg>Tomasz</arg>
              </scriptArgs>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

reports

可以使用 reports 元素来指定要生成的 Squish 报告。

元素描述
reports包含作为子元素的 report 元素。
report通过提供作为子元素的 formatpath 元素来配置单个报告。
format要生成的报告格式。支持的值在 执行测试用例(高级) 的 squishrunner 的 --reportgen 选项中列出。
path要生成的报告文件的绝对路径。

以下是在 POM 文件中使用 reports 元素的示例

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>com.froglogic.squish.maven</groupId>
        <artifactId>squish-plugin</artifactId>
        <executions>
          <execution>
            <id>book-test</id>
            <phase>test</phase>
            <goals>
              <goal>run-test</goal>
            </goals>
            <configuration>
              <path>C:\Squish</path>
              <testsuite>C:\Squish\examples\qt\addressbook\suite_py</testsuite>
              <testCases>
                <testCase>tst_adding</testCase>
                <testCase>tst_general</testCase>
              </testCases>
              <reports>
                <report>
                  <format>xml2.2</format>
                  <path>C:\xml_reports\addressbook.xml</path>
                </report>
                <report>
                  <format>xmljunit</format>
                  <path>C:\junit_reports\addressbook.xml</path>
                </report>
              </reports>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

©2024 The Qt Company Ltd. 包含在此内的文档贡献是各自所有者的版权。
提供的文档受 GNU 自由文档许可协议版本 1.3 的条款许可,由自由软件基金会发布。
Qt 及相关标志是 The Qt Company Ltd. 在芬兰及/或在世界其他国家的商标。所有其他商标均为各自所有者的财产。