В этом примере показано, как использовать основанный на MATLAB тест Simulink, чтобы собрать покрытие на модели и использовать Среду тестирования MATLAB, чтобы заполнить результаты в менеджере по Тесту. Основанными на MATLAB тестами Simulink является .m
определения классов теста файла, которые наследовались sltest.TestCase
.
Основанный на MATLAB тестовый файл Simulink, BaselineTestWithCoverage.m
, был создан и предоставлен этот пример. Тестовый файл содержит две тестовых функции. testOne
функция является простым базовым тестом для ограничивающей модели уровня, sltest_ratelim
.
Вторая тестовая функция, testTwo
, заменяет некоторые переменные в рабочем пространстве модели. Замененные переменные симулируют модель с падающим усилением, которое превышает ограничение скорости. Затем ограничение скорости изменяется так, чтобы значения усиления были в пределе. Этот тест использует Simulink.SimulationOutput
возразите при симуляции модели.
Создайте 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);
Модели в 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
. Агрегированные результаты показывают полный охват для заданных метрик покрытия.