В этом примере вы соединяете требование со скриптом MATLAB® с помощью Исходящего Редактора Ссылок и API. Состояние верификации в Редакторе Требований отражает результаты испытаний. Эти примеры следуют за рабочим процессом для включения внешних результатов испытаний в сводных данных верификации требования. Для получения дополнительной информации смотрите, Включают Результаты Внешних Источников в Состояние Верификации.
Создайте набор требования под названием counter_req.slreqx
в Редакторе Требований и сохраняют его в перезаписываемом месте. Этот набор требования имеет дочерние требования, которые имеют идентификаторы требования и описания. Для получения дополнительной информации о том, как создать наборы требования, смотрите работу с Требованиями в Редакторе Simulink.
У вас есть скрипт MATLAB по имени runmytests.m
это запускает тест для Counter
класс в Counter.m
. Тестовый скрипт содержит пользовательские методы, которые пишут результатам формат TAP в файл с именем results.tap
. Примите, что вы запустили тест, и он произвел results.tap
файл, который содержит результаты теста. Вы хотите соединить результаты теста к требованию в counter_req.slreqx
. Выполните эти шаги, чтобы создать и просмотреть состояние верификации с тестом под названием counterStartsAtZero
в runmytests.m
скрипт:
Откройте файл шаблона в matlabroot/toolbox/slrequirements/linktype_examples/linktype_TEMPLATE.m
. Выполните эти шаги:
Создайте новый файл MATLAB.
Скопируйте содержимое linktype_TEMPLATE
в новый файл. Сохраните файл как linktype_mymscripttap.m
.
В linktype_mymscripttap.m
Замените имя функции linktype_TEMPLATE
с linktype_mymscripttap.m
.
Установите linkType.Label
как 'MScript TAP Results'
.
Установите linkType.Extensions
как {'.M'}
.
Не прокомментируйте команду для GetResultFcn
для того, чтобы использовать его в linktype_mymscripttap
и войдите:
linktype.GetResultFcn = @GetResultFcn; ......... function result = GetResultFcn(link) testID = link.destination.id; testFile = link.destination.artifact; resultFile = getResultFile(testFile); if ~isempty(resultFile) && isfile(resultFile) tapService = slreq.verification.services.TAP(); result = tapService.getResult(testID, resultFile); else result.status = slreq.verification.Status.Unknown; end end function resultfile = getResultFile(testFile) resultMap = ["runmytests.m", "results.tap";... "othertests.m", "results2.tap"]; resultfile = resultMap(resultMap(:,1) == testFile,2); end
GetResultFcn
использует служебный slreq.verification.services.TAP
интерпретировать файлы результата для верификации. Смотрите slreq.verification.services.TAP
для получения дополнительной информации. Для получения дополнительной информации о GetResultFcn
, смотрите Типы Ссылки и Ссылки.
Сохраните linktype_mymscripttap.m
.
Укажите тип ссылки. В командной строке, введите:
rmi register linktype_mymscripttap
Примечание
Если команда возвращает предупреждение, то необходимо не указать файл и следовать за шагом 5 снова. Не укажите файл путем ввода:
rmi unregister linktype_mymscripttap
Выполните эти шаги, чтобы добавить ссылку вручную в Исходящем Редакторе Ссылок:
Откройте редактор требований и в counter_req.slreqx
набор требований, щелкните правой кнопкой по дочернему требованию по 1.1
и выберите Open Outgoing Links dialog ....
В диалоговом окне Outgoing Links Editor, во вкладке Requirements, нажимают New.
Введите эти детали, чтобы установить ссылку:
Описание: runmytestscounterStartsAtZero
Тип документа: MScript TAP Results
Документ: runmytests.m
Местоположение : counterStartsAtZero
Нажмите OK. Ссылка подсвечена в разделе Links Редактора Требований.
Обновите состояние верификации в Редакторе Требований. Нажмите на Refresh , чтобы видеть состояние верификации для требований в Редакторе Требований. Это показывает состояние верификации для целого набора требования, который передал или перестал работать.
Требования для counterStartsAtZero
полностью проверяются. Здесь, состояние верификации показывает, что из трех тестов, один тест передал.
Создайте набор требования под названием counter_req.slreqx
в Редакторе Требований и сохраняют его в перезаписываемом месте. Этот набор требования имеет дочерние требования, которые имеют идентификаторы требования и описания. Для получения дополнительной информации о том, как создать наборы требования, смотрите работу с Требованиями в Редакторе Simulink.
У вас есть скрипт MATLAB по имени runmytests.m
это запускает тест для Counter
класс в Counter.m
. Тестовый скрипт содержит пользовательские методы, которые написали результаты в формате TAP в файл с именем results.tap
. Примите, что вы запустили тест, и он произвел results.tap
файл, который содержит результаты теста. Вы хотите соединить результаты теста к требованию в counter_req.slreqx
. Выполните эти шаги, чтобы создать и просмотреть состояние верификации с тестом под названием counterStartsAtZero
в runmytests.m
скрипт:
Откройте файл шаблона в matlabroot/toolbox/slrequirements/linktype_examples/linktype_TEMPLATE.m
. Выполните эти шаги:
Создайте новый файл MATLAB.
Скопируйте содержимое linktype_TEMPLATE
в новый файл. Сохраните файл как linktype_mymscripttap.m
.
В linktype_mymscripttap.m
:
Замените имя функции linktype_TEMPLATE
с linktype_mymscripttap.m
.
Установите linkType.Label
как 'MScript TAP Results'
.
Установите linkType.Extensions
как {'.M'}
.
Не прокомментируйте команду для GetResultFcn
для того, чтобы использовать его в linktype_mymscripttap
и войдите:
linktype.GetResultFcn = @GetResultFcn; ......... function result = GetResultFcn(link) testID = link.destination.id; testFile = link.destination.artifact; resultFile = getResultFile(testFile); if ~isempty(resultFile) && isfile(resultFile) tapService = slreq.verification.services.TAP(); result = tapService.getResult(testID, resultFile); else result.status = slreq.verification.Status.Unknown; end end function resultfile = getResultFile(testFile) resultMap = ["runmytests.m", "results.tap";... "othertests.m", "results2.tap"]; resultfile = resultMap(resultMap(:,1) == testFile,2); end
GetResultFcn
использует служебный slreq.verification.services.TAP
интерпретировать файлы результата для верификации. Смотрите slreq.verification.services.TAP
для получения дополнительной информации. Для получения дополнительной информации о GetResultFcn
, смотрите Типы Ссылки и Ссылки.
Сохраните linktype_mymscripttap.m
.
Укажите тип ссылки. В командной строке, введите:
rmi register linktype_mymscripttap
Примечание
Если команда возвращает предупреждение, то необходимо не указать файл и следовать за шагом 5 снова. Не укажите файл путем ввода:
rmi unregister linktype_mymscripttap
Выполните эти шаги, чтобы создать ссылку:
Из командной строки MATLAB, введите:
externalSource.id = 'counterStartsAtZero'; externalSource.artifact = 'runmytests.m'; externalSource.domain = 'linktype_mymscripttap';
Найдите требование связанным со ссылкой путем ввода:
requirement = reqSet.find('Type', 'Requirement', 'SID', 2);
Создайте ссылку путем ввода:
link = slreq.createLink(requirement, externalSource);
counterStartsAtZero
для требования SID
. В Редакторе Требований ссылка появляется в разделе Links> Confirmed By.
Обновите состояние верификации. В командной строке MATLAB введите:
reqSet.updateVerificationStatus
status = reqSet.getVerificationStatus
Требования для counterStartsAtZero
полностью проверяются. Здесь, состояние верификации показывает, что из трех тестов, один тест передал.
Можно также интегрировать результаты случая Модульного теста MATLAB путем соединения с тестовым скриптом. Тест запущен с индивидуально настраиваемым исполнителем тестов с помощью плагина XML, который производит JUnit выход. XMLPlugin
класс создает плагин, который пишет результаты испытаний в XML-файл. Для получения дополнительной информации смотрите matlab.unittest.plugins.XMLPlugin.producingJUnitFormat
.
Можно указать область и создать ссылки таким же образом как с тестовым скриптом. Состояние верификации для набора требований показывают в Редакторе Simulink® Requirements™.
Включайте результаты внешних источников в состояние верификации