Skip to content

What is not supported yet

We would rather tell you the edges up front than have you discover them in the middle of a proof of concept. This page lists the current, honest limitations of veriCue. If one of these blocks your use case, tell us at sales@vericue.dev - real-world demand drives the roadmap.

Recording

  • The recorder does not generate assertions. It captures mouse, key and wheel events, resolves them to object paths, coalesces typed text, and emits a runnable Python script - but the script only replays what you did. You add the assert statements (property checks, screenshot comparisons) yourself. See Recording & replay.
  • Touch gestures are not recorded. Taps, swipes, pinches and other multi-touch input are fully supported for playback via touch_tap, swipe, pinch and multi_touch, but the recorder does not capture them. Write touch test steps by hand (Touch & gestures).

Drag and drop

drag is synthesized as a press-move-release sequence of mouse events inside your application. That covers in-app drags (sliders, reordering, item views). Native OS drag-and-drop between applications (dragging a file from a file manager into your app, or from your app to another program) is not supported.

Object identification

  • Dynamically created objects and transient popups (context menus, completers, tooltips, dialogs created on the fly) need a stable objectName to be addressed reliably. Unnamed objects fall back to ClassName#N index paths, which are order-dependent: creating or destroying a sibling changes the index. Set objectName on anything you want to automate.
  • Custom-rendered canvases are opaque. Shapes drawn inside an OpenGL viewport, a custom paintEvent, or a charting canvas are not QObjects, so they are not individually addressable. Interaction with such content is coordinate-based: you click at offsets within the canvas widget and verify results via application-side properties or screenshots. See OpenGL viewports for the recommended patterns.
  • Bare QWindow / QOpenGLWindow without a widget container is not resolvable by the object resolver. Wrap it with QWidget::createWindowContainer() (or use a QOpenGLWidget) so it appears in the widget tree.

Platform coverage

  • vericue-inject (driving an unmodified Qt binary with zero integration) is Linux-only.
  • macOS builds are Apple Silicon (arm64) with Qt 6 only. There is no macOS Intel (x64) build, and no Qt 5 build for macOS.
  • Linux and Windows are supported for both Qt 5.15 and Qt 6.

Visual comparison

screenshot_compare is pixel-based with a configurable threshold, not perceptual or structural. Font rendering, GPU drivers and scale factors differ across machines, so baselines captured on one machine usually need a tolerance to pass on another - or per-environment baselines. See Visual regression for threshold and masking strategies.

Released under a commercial licence. Privacy · Terms