Requirements of Squish for Qt

Last edited on

Overview

The default set of pre-built Squish for Qt binary packages is targeting the most common Qt configurations. The most important compatibility requirements are listed below.

Other configurations can be targeted by compiling Squish using a source package.

For some alternatives (debug builds, Qt 4 without Qt3Support) froglogic can quickly provide modified builds upon request. For other non-standard configurations (e.g. renamed Qt libraries, embedded systems, modified Qt API or binary interface) please contact technical support for creation of custom builds . Extra charges may apply.

In particular, for the default set Squish binary packages the following requirements must be met:

Dependencies of Squish for Qt (Qt 4) binary packages

LibraryMacUnixWindows
QtCore4QtCore.frameworklibQtCore.so.4QtCore4.dll
QtGui4QtGui.frameworklibQtGui.so.4QtGui4.dll
QtNetworkQtNetwork.frameworklibQtNetwork.so.4QtNetwork4.dll
Qt3SupportQt3Support.frameworklibQt3Support.so.4Qt3Support4.dll
QtSqlQtSql.frameworklibQtSql.so.4QtSql4.dll
QtXmlQtXml.frameworklibQtXml.so.4QtXml4.dll

On Windows, Squish for Qt ships with the libraries listed above (*.dll), so that it is possible to test Qt applications that do not include these libraries, without any further steps being necessary.

If these libraries are not provided you get errors such as these in Runner/Server Log:

The specified module could not be found.

Dependencies of Squish for Qt Pure Qt 4 binary packages

Pure Qt 4 (Which means Qt configured without the Qt3Support module) packages are only available on request, so please contact froglogic if you require a pure Qt 4 package.

LibraryMacUnixWindows
QtCore4QtCore.frameworklibQtCore.so.4QtCore4.dll
QtGui4QtGui.frameworklibQtGui.so.4QtGui4.dll
QtNetworkQtNetwork.frameworklibQtNetwork.so.4QtNetwork4.dll
QtSqlQtSql.frameworklibQtSql.so.4QtSql4.dll
QtXmlQtXml.frameworklibQtXml.so.4QtXml4.dll

On Windows, Squish for Qt ships with the libraries listed above (*.dll), so that it is possible to test Qt applications that do not include these libraries, without any further steps being necessary.

Additional dependencies of Pure Qt 4 packages on Windows

Squish binary packages ship with this library, but it may be slightly incompatible. This can cause the following error when the application starts up under Squish's control:

The specified procedure could not be found

(This won't happen if this library is shipped with your application of course, because in such cases the application will use its own copy of the library rather than Squish's.)

The solution is simply to copy the QtNetwork4.dll file that the application was built with (i.e., the one used by the Qt that the application was built with) into the same folder as the other library files that your application uses.

Additional requirements for automating QtWebKit

Squish supports automating QtWebKit interaction via an extension. (The extension ships with Squish for Qt, but requires an additional Squish for Web license to be usable.) Qt binaries above Qt 5.6 no longer include QtWebkit, so binary releases of Squish for Qt versions higher than that won't work with Webkit either, without a "quick install" step with a custom build of Qt.

The Squish QtWebKit extension depends on the following libraries:

LibraryMacUnixWindows
phononphonon.frameworkNot requiredNot required
QtDeclarativeQtDeclarative.frameworklibQtDeclarative.so.4QtDeclarative4.dll
QtOpenGLQtOpenGL.frameworkNot requiredNot required
QtScriptQtScript.frameworklibQtScript.so.4QtScript4.dll
QtSvgQtSvg.frameworkNot requiredNot required
QtXmlPatternsQtXmlPatterns.frameworklibQtXmlPatterns.so.4QtXmlPatterns4.dll

On Windows it should be sufficient to copy these files to the SQUISH_DIR\bin folder.

On Mac OS X these should be copied into the Frameworks folder of the application (for example /Applications/MyApp.app/Contents/Framework).

Possible workarounds

If the requirements listed above (or ones compatible with them) are not met, it may be possible to use the Qt libraries supplied with the Squish binary package. To try this out, first make sure that you make a backup of your application's libraries! Then copy Squish's Qt libraries into the directory that has your application's Qt libraries, overwriting the originals (hence the need to backup first). Now try recording and playing back tests.

If you still cannot get things to work, restore the application to its original Qt libraries. Download a Squish binary package and build Squish from source using the same Qt libraries as your application uses.

Note that if your application uses Qt without Qt3Support, contact froglogic support so that we can build you a Squish binary package without Qt3Support that can be used with your application and its Qt libraries.