Соберите покрытие Используя основанные на MATLAB тесты Simulink

В этом примере показано, как использовать основанный на MATLAB тест Simulink, чтобы собрать покрытие на модели и использовать Среду тестирования MATLAB, чтобы заполнить результаты в менеджере по Тесту. Основанными на MATLAB тестами Simulink является .m определения классов теста файла, которые наследовались sltest.TestCase.

Основанный на MATLAB файл Simulink Test

Основанный на MATLAB тестовый файл Simulink, BaselineTestWithCoverage.m, был создан и предоставлен этот пример. Тестовый файл содержит две тестовых функции. testOne функция является простым базовым тестом для ограничивающей модели уровня, sltest_ratelim.

Вторая тестовая функция, testTwo, заменяет некоторые переменные в рабочем пространстве модели. Замененные переменные симулируют модель с падающим усилением, которое превышает ограничение скорости. Затем ограничение скорости изменяется так, чтобы значения усиления были в пределе. Этот тест использует Simulink.SimulationOutput возразите при симуляции модели.

Создайте TestRunner и TestSuite

Создайте TestRunner запускать sltest_ratelim модель.

import matlab.unittest.TestRunner;
runner = TestRunner.withTextOutput;

Создайте TestSuite использовать с TestRunner.

suite = testsuite('BaselineTestWithCoverage');

Сконфигурируйте исполнителя тестов

Используйте сменные методы, чтобы сконфигурировать TestRunner добавить результаты испытаний из sltest.TestCase менеджеру по тесту. Добавьте TestRunnerPlugin к TestRunner.

import sltest.plugins.MATLABTestCaseIntegrationPlugin;
runner.addPlugin(MATLABTestCaseIntegrationPlugin);

DiagnosticsOutputPlugin и ToTestManagerLog передайте диагностику потоком от sltest.TestCase запуститесь к журналам TestCaseResults в Test Manager. Диагностика включает передающую диагностику для тестов та передача. Добавьте DiagnosticsOutputPlugin и ToTestManagerLog к TestRunner.

import sltest.plugins.ToTestManagerLog;
import matlab.unittest.plugins.DiagnosticsOutputPlugin;
streamOutput = ToTestManagerLog();
diagnosticsOutputPlugin = DiagnosticsOutputPlugin...
    (streamOutput,'IncludingPassingDiagnostics',true);
runner.addPlugin(diagnosticsOutputPlugin);

Сконфигурируйте набор покрытия для модели Simulink

Модели в sltest.TestCase это симулировано с помощью simulate метод может собрать покрытие. Используйте ModelCoveragePlugin сконфигурировать набор метрик покрытия. Этот пример собирает покрытие MCDC. Добавьте ModelCoveragePlugin к TestRunner.

import sltest.plugins.coverage.CoverageMetrics;
import sltest.plugins.ModelCoveragePlugin;
mcdcMetrics = CoverageMetrics('MCDC',true);
runner.addPlugin(ModelCoveragePlugin('Collecting',mcdcMetrics));

Соберите и добавьте покрытие и результаты испытаний менеджеру по тесту

Теперь, когда TestRunner полностью сконфигурирован, используйте run функция, чтобы собрать покрытие и добавить покрытие и результаты испытаний менеджеру по Тесту.

run(runner,suite);
Setting up ResultSetFixture
Done setting up ResultSetFixture
__________

Running BaselineTestWithCoverage
..
Done BaselineTestWithCoverage
__________

Tearing down ResultSetFixture
Done tearing down ResultSetFixture
__________

Coverage Report for sltest_ratelim
    /tmp/BR2020bd_1444674_32127/publish_examples0/tpa9c5d37f_9574_4bc3_9bfc_0fa1f056c7d7.html

run также генерирует отчет, который включает совокупное покрытие для тестового набора, который был запущен. Используйте Coverage Report for sltest_ratelim соединитесь, чтобы просмотреть отчет.

Откройте менеджера по тесту

sltestmgr

Выберите Results, и Artifacts разделяют на области и расширяют строки BaselineTestWithCoverage и Результаты.

Выберите testOne строка.

Раздел Coverage Results показывает покрытие, собранное для sltest_ratelim от testOne.

Выберите testTwo строка.

Раздел Coverage Results показывает покрытие, собранное для sltest_ratelim от testTwo.

Выберите BaselineTestWithCoverage строка.

Раздел Aggregated Coverage Results показывает агрегацию покрытия, собранного для sltest_ratelim от testOne и testTwo. Агрегированные результаты показывают полный охват для заданных метрик покрытия.

Для просмотра документации необходимо авторизоваться на сайте