FindSquish

-- 典型用法

此模組可以用於尋找 Squish。

SQUISH_FOUND                    If false, don't try to use Squish
SQUISH_VERSION                  The full version of Squish found
SQUISH_VERSION_MAJOR            The major version of Squish found
SQUISH_VERSION_MINOR            The minor version of Squish found
SQUISH_VERSION_PATCH            The patch version of Squish found
SQUISH_INSTALL_DIR              The Squish installation directory
                                (containing bin, lib, etc)
SQUISH_SERVER_EXECUTABLE        The squishserver executable
SQUISH_CLIENT_EXECUTABLE        The squishrunner executable
SQUISH_INSTALL_DIR_FOUND        Was the install directory found?
SQUISH_SERVER_EXECUTABLE_FOUND  Was the server executable found?
SQUISH_CLIENT_EXECUTABLE_FOUND  Was the client executable found?

它提供了函數 squish_add_test(),用於在使用 Squish >= 4.x 的 cmake 中新增 squish 測試。

squish_add_test(cmakeTestName
  AUT targetName SUITE suiteName TEST squishTestName
  [SETTINGSGROUP group] [PRE_COMMAND command] [POST_COMMAND command] )

在版本 3.18 中變更:在先前的 CMake 版本中,此函數名為 squish_v4_add_test

這些參數具有以下含義

cmakeTestName

這將被用作 add_test() 的第一個參數

AUT targetName

將用作 AUT 的 cmake 目標名稱,亦即將被測試的可執行檔。

SUITE suiteName

這可以是 squish 套件的完整路徑,或者只是套件的最後一個目錄,亦即套件名稱。在這種情況下,呼叫 squish_add_test() 的 CMakeLists.txt 必須位於套件目錄的父目錄中。

TEST squishTestName

squish 測試的名稱,亦即套件目錄內測試子目錄的名稱。

SETTINGSGROUP group

已棄用,此參數將被忽略。

PRE_COMMAND command

如果指定,則給定的命令將在開始 squish 測試之前執行。

POST_COMMAND command

與 PRE_COMMAND 相同,但在 squish 測試執行後。

enable_testing()
find_package(Squish 6.5)
if (SQUISH_FOUND)
   squish_add_test(myTestName
     AUT myApp
     SUITE ${CMAKE_SOURCE_DIR}/tests/mySuite
     TEST someSquishTest
     )
endif ()

對於 Squish 3.x 版的使用者,提供了巨集 squish_v3_add_test()

squish_v3_add_test(testName applicationUnderTest testCase envVars testWrapper)
Use this macro to add a test using Squish 3.x.
enable_testing()
find_package(Squish 3.0)
if (SQUISH_FOUND)
  squish_v3_add_test(myTestName myApplication testCase envVars testWrapper)
endif ()