В этом рабочем процессе требование связывается со сценарием 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 и выберите диалоговое окно «Открыть исходящие связи».
В диалоговом окне «Редактор исходящих связей» на вкладке «Требования» нажмите кнопку «Создать».
Введите следующие подробные данные для установления связи:
Описание: runmytestscounterStartsAtZero
Вид документа: MScript TAP Results
Документ: runmytests.m
Расположение: counterStartsAtZero
Нажмите кнопку OK. Ссылка подсвечивается в разделе «Ссылки» редактора требований.

Обновите статус проверки в редакторе требований. Нажмите кнопку
Обновить, чтобы просмотреть статус проверки требований в редакторе требований. Здесь отображается состояние проверки для всего набора требований, прошедшего или завершившегося неуспешно.

Требования к 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. В редакторе требований ссылка отображается в разделе Ссылки > Подтверждено.

Обновите статус проверки. В командной строке MATLAB введите:
reqSet.updateVerificationStatus
status = reqSet.getVerificationStatus

Требования к counterStartsAtZero полностью проверены. Здесь статус проверки показывает, что из трех тестов один тест прошел.
Кроме того, можно интегрировать результаты теста MATLAB Unit Test, связав их со сценарием теста. Тест запускается с помощью настроенного тестового питателя с помощью подключаемого модуля XML, который создает выходные данные JUnit. XMLPlugin создает подключаемый модуль, который записывает результаты теста в XML-файл. Дополнительные сведения см. в разделе matlab.unittest.plugins.XMLPlugin.producingJUnitFormat.
Можно зарегистрировать домен и создать ссылки таким же образом, как и в сценарии теста. Статус проверки для набора требований отображается в редакторе Simulink ® Requirements™ Editor.
