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

 Réponse acceptée

Adam Danz
Adam Danz le 13 Oct 2025
Modifié(e) : Adam Danz le 3 Nov 2025

0 votes

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.

Plus de réponses (1)

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 commentaire

Rich006
Rich006 le 13 Oct 2025
Modifié(e) : Rich006 le 13 Oct 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{:});

Connectez-vous pour commenter.

Catégories

En savoir plus sur Develop Apps Programmatically dans Centre d'aide et File Exchange

Produits

Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by