exponenta event banner

Создание теста для пользовательского кода в диаграмме потока состояний

В этом примере показано, как использовать генерацию тестов для модели с пользовательским кодом в диаграмме Stateflow.

Открытие модели, содержащей пользовательский код, в диаграмме Stateflow

open_system('sldvexSFCustomCodeExample');

Создание тестов для обеспечения охвата модели

Используйте sldvrun для выполнения анализа Simulink ® Design Verifier™.

opts = sldvoptions;
opts.Mode = 'TestGeneration';
opts.ModelCoverageObjectives = 'ConditionDecision';
opts.SaveHarnessModel = 'off';
opts.SaveReport = 'off';

[status, fileNames] = sldvrun('sldvexSFCustomCodeExample', opts);
Checking compatibility for test generation: model 'sldvexSFCustomCodeExample'
Compiling model...done
Building model representation...done

'sldvexSFCustomCodeExample' is compatible for test generation with Simulink Design Verifier.

Generating tests using model representation from 27-Jan-2021 09:48:33...
..........

Completed normally.

Generating output files:

Results generation completed.

    Data file:
    /tmp/BR2021ad_1584584_202060/publish_examples4/tp686bd2dc/ex18712703/sldv_output/sldvexSFCustomCodeExample/sldvexSFCustomCodeExample_sldvdata.mat

Проверка покрытия

Используйте sldvruntest функция для проверки того, что набор тестов достигает полного покрытия модели.

[~, finalCov] = sldvruntest('sldvexSFCustomCodeExample', fileNames.DataFile, [], true);
cvhtml('Final Coverage', finalCov);

Очистить

Чтобы завершить пример, закройте все модели.

close_system('sldvexSFCustomCodeExample', 0);