В этом примере вы соединяете требование со скриптом 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);
endGetResultFcn использует служебный 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);
endGetResultFcn использует служебный 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™.

Включайте результаты внешних источников в состояние верификации