FindSquish¶
查找 Squish,一个跨平台的自动化 GUI 测试框架,用于测试基于各种 GUI 技术构建的应用程序。Squish 支持对原生和跨平台工具包的测试,例如 Qt、Java 和 Tk。
结果变量¶
此模块定义了以下变量
Squish_FOUND
布尔值,指示是否找到 (请求版本) 的 Squish。为了向后兼容,
SQUISH_FOUND
变量也设置为相同的值。SQUISH_VERSION
找到的 Squish 的完整版本。
SQUISH_VERSION_MAJOR
找到的 Squish 的主版本。
SQUISH_VERSION_MINOR
找到的 Squish 的次版本。
SQUISH_VERSION_PATCH
找到的 Squish 的补丁版本。
SQUISH_INSTALL_DIR_FOUND
布尔值,指示是否找到 Squish 安装目录。
SQUISH_SERVER_EXECUTABLE_FOUND
布尔值,指示是否找到 Squish 服务器可执行文件。
SQUISH_CLIENT_EXECUTABLE_FOUND
布尔值,指示是否找到 Squish 客户端可执行文件。
缓存变量¶
以下缓存变量也可以设置
SQUISH_INSTALL_DIR
包含
bin
、lib
等的 Squish 安装目录。SQUISH_SERVER_EXECUTABLE
squishserver
可执行文件的路径。SQUISH_CLIENT_EXECUTABLE
squishrunner
可执行文件的路径。
命令¶
此模块在找到 Squish 后提供以下命令:
- squish_add_test¶
将 Squish 测试添加到项目
squish_add_test( <name> AUT <target> SUITE <suite-name> TEST <squish-test-case-name> [PRE_COMMAND <command>] [POST_COMMAND <command>] [SETTINGSGROUP <group>] )
此命令基于
add_test()
命令构建,并将名为<name>
的 Squish 测试添加到 CMake 项目。它支持 Squish 4 及更高版本。在 CMake 测试阶段,将启动 Squish 服务器,在客户端执行测试,并在测试完成后停止服务器。如果其中任何一个步骤失败 (包括测试本身失败),都会引发致命错误,表明测试未通过。
参数为
<name>
测试的名称。这会作为第一个参数传递给
add_test()
命令。AUT <target>
用作 AUT (被测应用程序) 的 CMake 目标名称,即将被测试的可执行文件。
SUITE <suite-name>
Squish 测试套件的完整路径或仅套件名称 (即套件的最后一个目录名)。在后一种情况下,调用
squish_add_test()
的CMakeLists.txt
必须位于套件的父目录中。TEST <squish-test-case-name>
Squish 测试的名称,对应于套件目录内测试的子目录。
PRE_COMMAND <command>
在启动 Squish 测试之前执行的可选命令。将其作为字符串传递。这可以是一个单独的命令,也可以是命令和参数的 分号分隔列表。
POST_COMMAND <command>
在 Squish 测试完成后执行的可选命令。将其作为字符串传递。这可以是一个单独的命令,也可以是命令和参数的 分号分隔列表。
SETTINGSGROUP <group>
自 3.18 版本起已弃用: 此参数现在被忽略。它以前用于指定执行测试的设置组名称,而不是默认值
CTest_<username>
。
自 3.18 版本起已更改: 在之前的 CMake 版本中,此命令名为
squish_v4_add_test()
。
- squish_v3_add_test¶
使用 Squish 3.x 版本时,将 Squish 测试添加到项目
squish_v3_add_test( <test-name> <application-under-test> <squish-test-case-name> <environment-variables> <test-wrapper> )
注意
此命令适用于 Squish 3 版本,该版本已不再维护。请使用较新版本的 Squish 和
squish_add_test()
命令。参数为
<name>
测试的名称。
<application-under-test>
用作 AUT (被测应用程序) 的可执行文件路径,即将被测试的可执行文件。
<squish-test-case-name>
Squish 测试的名称,对应于套件目录内测试的子目录。
<environment-variables>
环境变量及其值的分号分隔列表 (VAR=VALUE)。
<test-wrapper>
测试用例所需的一个或多个测试包装器的字符串 (分号分隔列表)。
示例¶
查找 Squish 和指定最低必需版本
find_package(Squish 6.5)
添加 Squish 测试
enable_testing()
find_package(Squish 6.5)
if(Squish_FOUND)
squish_add_test(
projectTestName
AUT projectApp
SUITE ${CMAKE_CURRENT_SOURCE_DIR}/tests/projectSuite
TEST someSquishTest
)
endif()
示例:如何使用 squish_v3_add_test()
命令
enable_testing()
find_package(Squish 3.0)
if(Squish_FOUND)
squish_v3_add_test(
projectTestName
$<TARGET_FILE:projectApp>
someSquishTest
"FOO=1;BAR=2"
testWrapper
)
endif()