Turn off UIFigure visibility during unit test

How can I run unit tests on an app without displaying the UIFigure during the tests? Rendering the graphics makes the tests take 10 times longer.
classdef UI < matlab.apps.AppBase
...
end
classdef tUI < matlab.uitest.TestCase
...
% many tests involving UI gestures
...
end

 Akzeptierte Antwort

Adam Danz
Adam Danz am 13 Okt. 2025
Bearbeitet: Adam Danz am 3 Nov. 2025

0 Stimmen

Interaction tests using press, drag, etc, require figure visibility to be on in the App Testing Framework.
Make sure you're not unnecessarily creating/destroying the uifigure repeatedly between tests. In most cases, the figure/app only needs to be generated once during TestClassSetup and removed via a teardown. Reducing the figure size may also help with performance.

Weitere Antworten (1)

Anjaneyulu Bairi
Anjaneyulu Bairi am 13 Okt. 2025

0 Stimmen

Hi,
In your code, you can create a function which turn on/off the visibilty of the figures. See the below code for example
function app = TurnOff(fig)
fig.Visible = 'off';
end
This way, you can show or hide any figure by changing its Visible property.
Hope this helps

1 Kommentar

Rich006
Rich006 am 13 Okt. 2025
Bearbeitet: Rich006 am 13 Okt. 2025
I think there is no way to do what I want to do, which is to turn off visibility during unit testing with gestures. If I make the UIFigure invisible as you suggest, I get the following error. It looks like the unit testing gestures require the UIFigure to be visible.
Error ID:
---------
'MATLAB:uiautomation:Driver:VisibleHierarchy'
--------------
Error Details:
--------------
Error using matlab.ui.internal.Driver/type
The component must have a visible hierarchy.
Error in matlab.uitest.internal.GestureProvider/type (line 181)
testCase.Driver.type(H, text, varargin{:});

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Version

R2023b

Gefragt:

am 8 Okt. 2025

Bearbeitet:

am 3 Nov. 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by