You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the tests are part of the main app executable and plugins. This makes the app unnecessarily large and requires linking with Qt Test library.
Solution
Move tests code to a separate executable instead of having it part of the app and plugins.
The artifacts build for tests will not be installed.
Script Functions
Move keys() and testSelected() script functions to a new plugin for tests.
Tests would need to pass custom plugin paths to the tested app. Maybe using an env variable COPYQ_PLUGINS.
This would require some support for calling functions/slots existing in the main server process. Possible solutions:
ScriptableProxy finds a QObject with specific name created by the new test plugin and call its slot with specific parameters
ScriptableProxy passes specific parameters to a method in the new plugin (ItemLoaderInterface)
Plugins
Move plugins/*/tests/* to src/tests/.
Move all overrides of ItemLoaderInterface::tests() to the tests themselves.
This would avoid loading plugins in tests and just run the tests assuming all plugins would be available.
CMake
The new executable copyq-tests and the new plugin will be built if WITH_TESTS=1 is set. These will not be installed.
Avoid linking the app itself with Qt Test library.
Activity
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app
Separate tests from the app