Управляйте тестовыми обвязками

Внутренние и внешние тестовые обвязки

Можно сохранить тестовые обвязки внутренне как часть файла модели SLX, или внешне в отдельных файлах SLX. Модель хранит все тестовые обвязки или внутренне или внешне; не возможно использовать оба типа устройства хранения данных обвязки в одной модели. Вы выбираете внутреннее или внешнее устройство хранения данных тестовой обвязки, когда вы создаете первую тестовую обвязку. Если ваша модель уже имеет тестовые обвязки, можно преобразовать между типами хранения обвязки.

Если вы храните свою модель в системе управления конфигурацией, рассматриваете использование внешних тестовых обвязок. Внешние тестовые обвязки позволяют вам создать или изменить обвязку, не изменяя файл модели. Если вы планируете совместно использовать свою модель часто, рассмотрите использование внутренних тестовых обвязок, чтобы упростить управление файлами. Создание или изменение внутренней тестовой обвязки изменяют ваш файл модели SLX. И внутренние и внешние тестовые обвязки предлагают ту же синхронизацию, продвигают, восстанавливают, и функциональность интерфейса значка.

Смотрите создают тестовые обвязки и выбирают свойства.

Управляйте внешними тестовыми обвязками

Обвязки, сохраненные внешне, используют отдельный файл SLX для каждой обвязки и <modelName>_harnessInfo.xml файл, который содержит метаданные, соединяющие модель и обвязки. Изменение тестовых обвязок может изменить harnessInfo.xml файл. Метаданные и модель соединяются с помощью уникального идентификатора для модели. XML-файл метаданных тестовой обвязки создается и хранится по умолчанию в той же папке как модель. Можно переместить XML-файл метаданных в другую папку на пути MATLAB при желании. Ссылка между моделью и ее обвязками сохраняется пока файл метаданных обвязки, модель, и обвязки - все на пути MATLAB.

Следуйте этим инструкциям для внешних тестовых обвязок:

Предупреждение

Не удаляйте или вносите любые ручные изменения в harnessInfo.xml файл. Удаление harnessInfo.xml файл может разъединить отношение между моделью и обвязками, которые не могут быть регенерированы из модели.

  • harnessInfo.xml файл должен быть перезаписываем, чтобы сохранить изменения в тестовой обвязке или основной модели.

  • Папки, содержащие файлы SLX тестовой обвязки, должны быть на MATLAB® path.

  • Если тестовая обвязка harnessInfo.xml файл не находится в той же папке как модель, XML-файл или его папка должны быть на пути MATLAB.

  • Если вы преобразуете внутренние тестовые обвязки во внешние тестовые обвязки, новые файлы SLX сохраняют в текущую рабочую папку.

  • Если вы преобразуете внешние тестовые обвязки во внутренние тестовые обвязки, внешние файлы SLX могут быть где угодно на пути MATLAB.

  • Если ваша модель использует внешние тестовые обвязки, только создайте копию своей модели с помощью Save> Save as. Используя Save as копирует внешние тестовые обвязки в папку назначения новой модели, переименовывает обвязки и сохраняет информацию обвязки текущей.

    Копирование файла модели на диске не скопирует внешние обвязки, сопоставленные с моделью.

  • Только измените или удалите тестовые обвязки с помощью Simulink® Пользовательский интерфейс или команды:

    • Чтобы удалить тестовые обвязки, используйте миниатюру пользовательский интерфейс или sltest.harness.delete команда.

    • Чтобы переименовать тестовые обвязки, используйте свойства UI обвязки или sltest.harness.set команда.

    • Чтобы сделать копию внешне сохраненной тестовой обвязки, используйте sltest.harness.clone команда или сохраняет тестовую обвязку в новое имя с помощью Save> Save as.

    Удаление или переименование файлов обвязки за пределами Simulink вызывают неточный harnessInfo.xml файл и проблемы, загружающие тестовые обвязки.

Преобразуйте между внутренними и внешними тестовыми обвязками

Можно измениться, как модель хранит тестовые обвязки в различных фазах жизненного цикла модели. Например:

  • Разработайте свою модель с помощью внутренних тестовых обвязок так, чтобы можно было более легко совместно использовать модель для анализа. Когда вы завершаете свой проект и помещаете модель при контроле изменений, преобразуете во внешние обвязки.

  • Используйте модель управления конфигурацией в качестве начальной точки для нового проекта. Протестируйте существующую модель с внешними обвязками, чтобы не изменять его. Затем создайте копию существующей модели. Преобразуйте во внутренние обвязки для фазы новой разработки.

Изменить устройство хранения данных тестовой обвязки во внешний (или внутренний):

  1. Перейдите к верхней части основной модели.

  2. На вкладке Apps, под Model Verification, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests нажмите Manage Test Harnesses> Convert to External Harnesses или Convert to Internal Harnesses.

  3. Диалоговое окно предоставляет информацию о процедуре преобразования и затронутых тестовых обвязках. Нажмите Yes, чтобы продолжиться.

    Обвязки преобразованы.

  4. Преобразование во внешние тестовые обвязки создает файл SLX для каждой тестовой обвязки и XML-файла информации об обвязке <modelName>_harnessInfo.xml.

    External test harness and files list

    Обратно пропорционально преобразование во внутренние тестовые обвязки перемещает файлы SLX тестовой обвязки и harnessInfo.xml файл.

    Internal harness and main model list

Предварительный просмотр и открытые тестовые обвязки

Когда компонент модели имеет тестовую обвязку, значок появляется в нижнем правом углу блока. Чтобы просмотреть тестовые обвязки, кликните по значку. Чтобы открыть тестовую обвязку, кликните по мозаике.

Test harness tiles from component badge

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

Test harness tiles from canvas pullout

Найдите тесты связанными с тестовой обвязкой

Чтобы перечислить открытые тесты, которые относятся к тестовой обвязке, кликните по значку в холсте тестовой обвязки. Можно кликнуть по имени теста и перейти к тесту в менеджере по Тесту.

Test cases of a test harness

Экспортируйте тестовые обвязки в автономные модели

Можно экспортировать тестовые обвязки в автономные модели, который полезен для архивации тестовых обвязок или совместного использования проекта тестовой обвязки, не совместно используя модель.

  • Экспортировать отдельную тестовую обвязку:

    1. От отдельной модели тестовой обвязки, на вкладке Apps, под Model Verification, Validation, and Test, нажимают Simulink Test.

    2. Во вкладке Harness нажмите Detach and Export.

    3. В диалоговом окне Export Test Harness to Independent Model нажмите OK.

    4. В диалоговом окне Save As введите имя файла для автономной модели тестовой обвязки и нажмите OK.

    5. Обвязка преобразует в автономную модель.

      Преобразование удаляет обвязку из основной модели и повреждает отношение к основной модели. Если модель имеет только одну обвязку, ее harnessInfo.xml файл удален. Если модель имеет больше чем одну обвязку, и вы удаляете один из них, harnessInfo.xml файл обновляется.

  • Экспортировать все обвязки в модели:

    1. Перейдите к верхнему уровню модели. Не выбирайте блоки.

    2. На вкладке Apps, под Model Verification, Validation, and Test, нажимают Simulink Test.

    3. Во вкладке Harness нажмите Detach and Export.

    4. В диалоговом окне Export Test Harness to Independent Model нажмите OK.

    5. В диалоговом окне Save As введите имя файла для отдельной модели и нажмите OK.

    6. Все тестовые обвязки экспортированы и преобразованы в автономные модели.

      Экспорт удаляет обвязки из основной модели, удаляет harnessInfo.xml файл и пропуски отношения к основной модели.

Смотрите sltest.harness.export.

Клонируйте и экспортируйте тестовую обвязку в отдельную модель

Этот пример демонстрирует клонирование существующей тестовой обвязки и экспорт клонированной обвязки к отдельной модели. Это может быть полезно, если вы хотите создать копию тестовой обвязки как отдельная модель, но оставить тестовую обвязку сопоставленной с компонентом модели.

Высокоуровневый рабочий процесс

  1. Если вы не знаете точные свойства тестовой обвязки, вы хотите клонировать, получить их использующий sltest.harness.find. Вам нужен владелец обвязки ID и имя обвязки.

  2. Клонируйте тестовую обвязку с помощью sltest.harness.clone.

  3. Экспортируйте тестовую обвязку в отдельную модель с помощью sltest.harness.export. Обратите внимание на то, что нет никакой ассоциации между экспортируемой моделью и исходной моделью. Одни только экспортируемые типовые стенды.

Откройте модель и сохраните локальную копию

model = 'sltestTestSequenceExample';
open_system(model)

Сохраните локальную копию в перезаписываемом месте на пути MATLAB.

Получите свойства исходной тестовой обвязки

properties = sltest.harness.find([model '/shift_controller'])
properties = 

  struct with fields:

                    model: 'sltestTestSequenceExample'
                     name: 'controller_harness'
              description: ''
                     type: 'Testing'
              ownerHandle: 10.0007
            ownerFullPath: 'sltestTestSequenceExample/shift_controller'
                ownerType: 'Simulink.SubSystem'
                   isOpen: 0
              canBeOpened: 1
         verificationMode: 0
           saveExternally: 0
            rebuildOnOpen: 0
         rebuildModelData: 0
      postRebuildCallback: ''
                graphical: 0
                  origSrc: 'Test Sequence'
                 origSink: 'Test Assessment'
      synchronizationMode: 0
      existingBuildFolder: ''
    functionInterfaceName: ''

Клонируйте тестовую обвязку

Клонируйте тестовую обвязку с помощью sltest.harness.clone, ownerFullPath и name поля структуры свойств обвязки.

sltest.harness.clone(properties.ownerFullPath,properties.name,'ControllerHarness2')

Сохраните модель

Прежде, чем экспортировать обвязку, сохраните изменения в модели.

save_system(model)

Экспортируйте тестовую обвязку в отдельную модель

Экспортируйте тестовую обвязку с помощью sltest.harness.export. Экспортируемым именем модели является ControllerTestModel.

sltest.harness.export([model '/shift_controller'],'ControllerHarness2',...
    'Name','ControllerTestModel')
clear('model')
clear('properties')
close_system('sltestTestSequenceExample',0)

Удалите тестовые обвязки программно

В этом примере показано, как удалить тестовые обвязки программно. Удаление использования программируемого интерфейса может быть полезным, когда ваша модель имеет несколько тестовых обвязок на различных уровнях иерархии. Этот пример демонстрирует, как создать четыре тестовых обвязки и затем, удалить их.

1. Откройте модель

open_system('sltestCar');

2. Создайте две обвязки для transmission подсистема и две обвязки для transmission ratio подсистема.

sltest.harness.create('sltestCar/transmission');
sltest.harness.create('sltestCar/transmission');
sltest.harness.create('sltestCar/transmission/transmission ratio');
sltest.harness.create('sltestCar/transmission/transmission ratio');

3. Найдите обвязки в модели.

test_harness_list = sltest.harness.find('sltestCar')
test_harness_list = 

  1x5 struct array with fields:

    model
    name
    description
    type
    ownerHandle
    ownerFullPath
    ownerType
    isOpen
    canBeOpened
    verificationMode
    saveExternally
    rebuildOnOpen
    rebuildModelData
    postRebuildCallback
    graphical
    origSrc
    origSink
    synchronizationMode
    existingBuildFolder
    functionInterfaceName

4. Удалите обвязки.

for k = 1:length(test_harness_list)
     sltest.harness.delete(test_harness_list(k).ownerFullPath,...
     test_harness_list(k).name)
end
close_system('sltestCar',0);

Переместите и клонируйте тестовые обвязки

Simulink Test™ дает вам способность переместить или клонировать тестовые обвязки от исходного владельца целевому владельцу, не имея необходимость компилировать модель. Можно переместиться или клонироваться:

  • Подсистема использует через подсистемы. Целевая подсистема могла также быть в различной модели.

  • Обвязки для компонентов библиотеки через библиотеки.

  • Блок Subsystem Reference использует к другим обвязкам блока Subsystem Reference.

  • Блок Subsystem Reference использует к и от обвязок модели Subsystem.

Чтобы переместить или клонировать обвязки, щелкните правой кнопкой по холсту Simulink и выберите Test Harness> Manage Test Harnesses. Диалоговое окно Manage Test Harness открывает и перечисляет тестовые обвязки, сопоставленные с подсистемой или блоком, заданным в Filter by harness owner. Нажмите Actions, чтобы получить доступ к опциям Перемещения и Клона.

Manage Test Harnesses dialog box Actions menu

Move Harness dialog box

Выберите целевой путь и назовите вашу тестовую обвязку.

Передача тестовой обвязки при преобразовании подсистем в модели - ссылки

Когда вы преобразуете блок Subsystem или Subsystem Reference в блок Model, тестовые обвязки передаются ссылаемой модели. Обвязки на блоке Subsystem преобразованы в обвязки блок-схемы. Вложенные обвязки в подсистемах копируются в идентичные блоки в блоке Model. Все переданные обвязки являются внутренними обвязками в модели - ссылке. Тестовые обвязки могут быть переименованы, когда они передаются. Вы видите обратную связь о передаче обвязки в панели Complete Conversion Советника по вопросам Преобразования или в командной строке MATLAB.

Эти ограничения применяются к преобразованию блока Subsystem или Subsystem Reference блоку Model:

  • SIL и обвязки PIL не передаются.

  • Требования в тестовой обвязке для подсистемы не передаются. Необходимо скопировать их вручную.

Смотрите также

| | | | | | | |

Похожие темы