Turn off UIFigure visibility during unit test

31 vues (au cours des 30 derniers jours)
Rich006
Rich006 le 8 Oct 2025 à 13:25
Réponse apportée : Adam Danz le 13 Oct 2025 à 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

Réponse acceptée

Adam Danz
Adam Danz le 13 Oct 2025 à 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.

Plus de réponses (1)

Anjaneyulu Bairi
Anjaneyulu Bairi le 13 Oct 2025 à 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 commentaire
Rich006
Rich006 le 13 Oct 2025 à 11:49
Modifié(e) : Rich006 le 13 Oct 2025 à 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{:});

Connectez-vous pour commenter.

Catégories

En savoir plus sur App Testing Framework dans Help Center 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