Turn off UIFigure visibility during unit test

30 visualizzazioni (ultimi 30 giorni)
Rich006
Rich006 il 8 Ott 2025 alle 13:25
Risposto: Adam Danz il 13 Ott 2025 alle 17:29
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

Risposta accettata

Adam Danz
Adam Danz il 13 Ott 2025 alle 17:29
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. Reducinge the figure size may also help with performance.

Più risposte (1)

Anjaneyulu Bairi
Anjaneyulu Bairi il 13 Ott 2025 alle 9:20
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 Commento
Rich006
Rich006 il 13 Ott 2025 alle 11:49
Modificato: Rich006 il 13 Ott 2025 alle 11:50
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{:});

Accedi per commentare.

Prodotti


Release

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by