Ссылка на тестовый скрипт

В этом рабочем процессе вы связываете требование с 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 и выберите Open Outgoing Links dialog.

  2. В диалоговом окне Редактор исходящих ссылок, на вкладке Requirements, нажмите New.

  3. Введите следующие данные для установления ссылки:

    • Описание: runmytestscounterStartsAtZero

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

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

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

  4. Нажмите OK. Ссылка выделена в Links разделе редактора требований.

Просмотр состояния верификации

Обновите статус верификации в редакторе требований. Щелкните Refresh для просмотра статуса верификации требований в редакторе требований. Это показывает состояние верификации для всего набора требований, который прошел или не прошел проверку.

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

Просмотр состояния верификации

Обновите состояние верификации. В командной строке MATLAB введите:

reqSet.updateVerificationStatus
Выберите статус верификации для требования путем ввода:
status = reqSet.getVerificationStatus
Это показывает, какие из требований в наборе требований прошли или не прошли. Нажмите на Refresh кнопку для просмотра статуса верификации требований в редакторе требований.

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

Интеграция результатов из случая Модульного теста MATLAB

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

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

Похожие темы