Можно сохранить тестовые обвязки внутренне как часть файла модели 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
файл и проблемы, загружающие тестовые обвязки.
Можно измениться, как модель хранит тестовые обвязки в различных фазах жизненного цикла модели. Например:
Разработайте свою модель с помощью внутренних тестовых обвязок так, чтобы можно было более легко совместно использовать модель для анализа. Когда вы завершаете свой проект и помещаете модель при контроле изменений, преобразуете во внешние обвязки.
Используйте модель управления конфигурацией в качестве начальной точки для нового проекта. Протестируйте существующую модель с внешними обвязками, чтобы не изменять его. Затем создайте копию существующей модели. Преобразуйте во внутренние обвязки для фазы новой разработки.
Изменить устройство хранения данных тестовой обвязки во внешний (или внутренний):
Перейдите к верхней части основной модели.
На вкладке Apps, под Model Verification, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests нажмите Manage Test Harnesses> Convert to External Harnesses или Convert to Internal Harnesses.
Диалоговое окно предоставляет информацию о процедуре преобразования и затронутых тестовых обвязках. Нажмите Yes, чтобы продолжиться.
Обвязки преобразованы.
Преобразование во внешние тестовые обвязки создает файл SLX для каждой тестовой обвязки и XML-файла информации об обвязке <modelName>_harnessInfo.xml
.
Обратно пропорционально преобразование во внутренние тестовые обвязки перемещает файлы SLX тестовой обвязки и harnessInfo.xml
файл.
Когда компонент модели имеет тестовую обвязку, значок появляется в нижнем правом углу блока. Чтобы просмотреть тестовые обвязки, кликните по значку. Чтобы открыть тестовую обвязку, кликните по мозаике.
Чтобы просмотреть тестовые обвязки для схемы блока модели, кликните по значку отступления в холсте модели. Чтобы открыть тестовую обвязку, кликните по мозаике.
Чтобы перечислить открытые тесты, которые относятся к тестовой обвязке, кликните по значку в холсте тестовой обвязки. Можно кликнуть по имени теста и перейти к тесту в менеджере по Тесту.
Можно экспортировать тестовые обвязки в автономные модели, который полезен для архивации тестовых обвязок или совместного использования проекта тестовой обвязки, не совместно используя модель.
Экспортировать отдельную тестовую обвязку:
От отдельной модели тестовой обвязки, на вкладке Apps, под Model Verification, Validation, and Test, нажимают Simulink Test.
Во вкладке Harness нажмите Detach and Export.
В диалоговом окне Export Test Harness to Independent Model нажмите OK.
В диалоговом окне Save As введите имя файла для автономной модели тестовой обвязки и нажмите OK.
Обвязка преобразует в автономную модель.
Преобразование удаляет обвязку из основной модели и повреждает отношение к основной модели. Если модель имеет только одну обвязку, ее harnessInfo.xml
файл удален. Если модель имеет больше чем одну обвязку, и вы удаляете один из них, harnessInfo.xml
файл обновляется.
Экспортировать все обвязки в модели:
Перейдите к верхнему уровню модели. Не выбирайте блоки.
На вкладке Apps, под Model Verification, Validation, and Test, нажимают Simulink Test.
Во вкладке Harness нажмите Detach and Export.
В диалоговом окне Export Test Harness to Independent Model нажмите OK.
В диалоговом окне Save As введите имя файла для отдельной модели и нажмите OK.
Все тестовые обвязки экспортированы и преобразованы в автономные модели.
Экспорт удаляет обвязки из основной модели, удаляет harnessInfo.xml
файл и пропуски отношения к основной модели.
Смотрите sltest.harness.export
.
Этот пример демонстрирует клонирование существующей тестовой обвязки и экспорт клонированной обвязки к отдельной модели. Это может быть полезно, если вы хотите создать копию тестовой обвязки как отдельная модель, но оставить тестовую обвязку сопоставленной с компонентом модели.
Высокоуровневый рабочий процесс
Если вы не знаете точные свойства тестовой обвязки, вы хотите клонировать, получить их использующий sltest.harness.find
. Вам нужен владелец обвязки ID и имя обвязки.
Клонируйте тестовую обвязку с помощью sltest.harness.clone.
Экспортируйте тестовую обвязку в отдельную модель с помощью 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, чтобы получить доступ к опциям Перемещения и Клона.
Выберите целевой путь и назовите вашу тестовую обвязку.
Когда вы преобразуете блок Subsystem или Subsystem Reference в блок Model, тестовые обвязки передаются ссылаемой модели. Обвязки на блоке Subsystem преобразованы в обвязки блок-схемы. Вложенные обвязки в подсистемах копируются в идентичные блоки в блоке Model. Все переданные обвязки являются внутренними обвязками в модели - ссылке. Тестовые обвязки могут быть переименованы, когда они передаются. Вы видите обратную связь о передаче обвязки в панели Complete Conversion Советника по вопросам Преобразования или в командной строке MATLAB.
Эти ограничения применяются к преобразованию блока Subsystem или Subsystem Reference блоку Model:
SIL и обвязки PIL не передаются.
Требования в тестовой обвязке для подсистемы не передаются. Необходимо скопировать их вручную.
sltest.harness.create
| sltest.harness.clone
| sltest.harness.delete
| sltest.harness.export
| sltest.harness.find
| sltest.harness.load
| sltest.harness.open
| sltest.harness.move
| Советник по вопросам преобразования модели - ссылки