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 元素。 | 否 |
path | Squish 根目录的绝对路径。 | 是 |
host | 运行 squishserver 的机器的主机名。省略此参数将使插件自动启动 squishserver。 | 否 |
port | squishserver 监听端口号。省略此参数将使插件自动启动 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 元素。 |
tags | CNaz要执行的测试用例的标签。语义与 squishrunner 的 --tags 参数相同。必须是 tagFilters 元素的子元素。 |
以下是在 POM 文件中使用 tagFilters
元素的示例,其中执行了同时标记为 foo
和 bar
的所有场景或测试脚本。
<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 | 通过提供作为子元素的 format 和 path 元素来配置单个报告。 |
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. 在芬兰及/或在世界其他国家的商标。所有其他商标均为各自所有者的财产。