exponenta event banner

Привязка к тестовому сценарию

В этом рабочем процессе требование связывается со сценарием 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. Выполните следующие действия.

  1. Создайте новый файл MATLAB.

  2. Копировать содержимое linktype_TEMPLATE в новый файл. Сохранить файл как linktype_mymscripttap.m.

  3. В linktype_mymscripttap.m

    1. Заменить имя функции linktype_TEMPLATE с linktype_mymscripttap.m.

    2. Набор linkType.Label как 'MScript TAP Results'.

    3. Набор linkType.Extensions как {'.M'}.

    4. Раскомментируйте команду для 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, см. Ссылки и типы ссылок.

  4. Сохранить linktype_mymscripttap.m.

  5. Зарегистрируйте тип связи. В командной строке введите:

    rmi register linktype_mymscripttap

    Примечание

    Если команда возвращает предупреждение, необходимо отменить регистрацию файла и повторить шаг 5. Отмените регистрацию файла, введя:

    rmi unregister linktype_mymscripttap

Создать ссылку

Чтобы добавить ссылку вручную в редакторе исходящих ссылок, выполните следующие действия.

  1. Откройте редактор требований и в окне counter_req.slreqx набор требований, щелкните правой кнопкой мыши дочернее требование 1.1 и выберите диалоговое окно «Открыть исходящие связи».

  2. В диалоговом окне «Редактор исходящих связей» на вкладке «Требования» нажмите кнопку «Создать».

  3. Введите следующие подробные данные для установления связи:

    • Описание: runmytestscounterStartsAtZero

    • Вид документа: MScript TAP Results

    • Документ: runmytests.m

    • Расположение: counterStartsAtZero

  4. Нажмите кнопку OK. Ссылка подсвечивается в разделе «Ссылки» редактора требований.

Просмотр статуса проверки

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

Требования к counterStartsAtZero полностью проверены. Здесь статус проверки показывает, что из трех тестов один тест прошел.

Ссылка на тестовый сценарий с помощью 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. Выполните следующие действия.

  1. Создайте новый файл MATLAB.

  2. Копировать содержимое linktype_TEMPLATE в новый файл. Сохранить файл как linktype_mymscripttap.m.

  3. В linktype_mymscripttap.m:

    1. Заменить имя функции linktype_TEMPLATE с linktype_mymscripttap.m.

    2. Набор linkType.Label как 'MScript TAP Results'.

    3. Набор linkType.Extensions как {'.M'}.

    4. Раскомментируйте команду для 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, см. Ссылки и типы ссылок.

  4. Сохранить linktype_mymscripttap.m.

  5. Зарегистрируйте тип связи. В командной строке введите:

    rmi register linktype_mymscripttap

    Примечание

    Если команда возвращает предупреждение, необходимо отменить регистрацию файла и повторить шаг 5. Отмените регистрацию файла, введя:

    rmi unregister linktype_mymscripttap

Создать ссылку

Чтобы создать ссылку, выполните следующие действия.

  1. В командной строке MATLAB введите:

    externalSource.id = 'counterStartsAtZero';
    externalSource.artifact = 'runmytests.m';
    externalSource.domain = 'linktype_mymscripttap';

  2. Найдите требование, связанное со ссылкой, введя:

    requirement = reqSet.find('Type', 'Requirement', 'SID', 2);

  3. Создайте ссылку, введя:

    link = slreq.createLink(requirement, externalSource);
    При этом связь создается как тестовый случай counterStartsAtZero для требования SID. В редакторе требований ссылка отображается в разделе Ссылки > Подтверждено.

Просмотр статуса проверки

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

reqSet.updateVerificationStatus
Выберите статус проверки для потребности путем ввода:
status = reqSet.getVerificationStatus
Здесь показано, какие из требований в наборе требований прошли или потерпели неудачу. Нажмите кнопку «Обновить » для просмотра статуса проверки требований в редакторе требований.

Требования к counterStartsAtZero полностью проверены. Здесь статус проверки показывает, что из трех тестов один тест прошел.

Интеграция результатов теста блока MATLAB

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

Можно зарегистрировать домен и создать ссылки таким же образом, как и в сценарии теста. Статус проверки для набора требований отображается в редакторе Simulink ® Requirements™ Editor.

Связанные темы