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

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

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

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

См. «Создание тестовых обвязок» и «Выбор свойств».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для изменения тестовой обвязки памяти на внешнюю (или внутреннюю):

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

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

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

    Обвязки преобразуются.

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

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

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

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

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

Поиск тестов, связанных с тестовой обвязкой

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

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

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

  • Для экспорта отдельной тестовой обвязки:

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

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

    3. В диалоговом окне «Экспорт тестовой обвязки в независимую модель» нажмите кнопку OK.

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

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

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

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

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

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

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

    4. В диалоговом окне «Экспорт тестовой обвязки в независимую модель» нажмите кнопку OK.

    5. В диалоговом окне «Сохранить как» введите имя файла для отдельной модели и нажатия кнопки OK.

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

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

Посмотрите sltest.harness.export.

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

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

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

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

  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.0004
            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.

  • Подсистема Ссылки блока подключается к Подсистеме модели обвязок и из нее.

  • Подсистема Ссылки блока подключается к Подсистеме модели обвязок и из нее.

Чтобы переместить или клонировать обвязки, щелкните правой кнопкой мыши холст Simulink и выберите Test Harness > Manage Test Harnesses. Откроется диалоговое окно Управление тестовым жгутом (Manage Тестовая Обвязка), в котором перечислены тестовые обвязки, сопоставленные с подсистемой или блоком, указанным в Filter by harness owner. Щелкните Actions, чтобы получить доступ к опциям Переместить и Клонировать (Move and Clone).

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

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

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

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

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

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

См. также

| | | | | | | |