Можно сохранить тестовые обвязки внутренне как часть файла модели SLX, или внешне в отдельных файлах SLX. Модель хранит все тестовые обвязки или внутренне или внешне; не возможно использовать оба типа устройства хранения данных обвязки в одной модели. Вы выбираете внутреннее или внешнее устройство хранения данных тестовой обвязки, когда вы создаете первую тестовую обвязку. Если ваша модель уже имеет тестовые обвязки, можно преобразовать между типами хранения обвязки.
Если вы храните свою модель в системе контроля изменений, рассматриваете использование внешних тестовых обвязок. Внешние тестовые обвязки позволяют вам создать или изменить обвязку, не изменяя файл модели. Если вы планируете совместно использовать свою модель часто, рассмотрите использование внутренних тестовых обвязок, чтобы упростить управление файлами. Создание или изменение внутренней тестовой обвязки изменяют ваш файл модели SLX. И внутренние и внешние тестовые обвязки предлагают ту же синхронизацию, продвигают, восстанавливают, и функциональность интерфейса значка.
Обвязки, сохраненные внешне, используют отдельный файл SLX в каждой обвязке и <modelName>_harnessInfo.xml
файл, содержащий метаданные, соединяющие модель и обвязки. Изменение тестовых обвязок может изменить harnessInfo.xml
файл.
Следуйте этим инструкциям для внешних тестовых обвязок:
Не удаляйте harnessInfo.xml
файл. Удаление harnessInfo.xml
файл отключает отношение между моделью и обвязками, которые не могут быть регенерированы из модели.
harnessInfo.xml
файл должен быть перезаписываем, чтобы сохранить изменения в тестовой обвязке или основной модели.
Сохраните harnessInfo.xml
файл в той же папке как основная модель. Если harnessInfo.xml
файл и модель находятся в отдельных папках, основная модель открывает, но не представляет тестовые обвязки.
Директории, содержащие файлы SLX тестовой обвязки, должны быть на пути MATLAB®.
Если вы преобразуете внутренние тестовые обвязки во внешние тестовые обвязки, новые файлы SLX сохраняют в текущую рабочую папку.
Если вы преобразуете внешние тестовые обвязки во внутренние тестовые обвязки, внешние файлы SLX могут быть где угодно на пути MATLAB.
Если ваша модель использует внешние тестовые обвязки, только создайте копию своей модели с помощью Save> Save as. Используя Save as копирует внешние тестовые обвязки в папку назначения новой модели и сохраняет информацию обвязки текущей.
Копирование файла модели на диске не скопирует внешние обвязки, сопоставленные с моделью.
Только измените или удалите тестовые обвязки с помощью Simulink® UI или команд:
Чтобы удалить тестовые обвязки, используйте миниатюру пользовательский интерфейс или sltest.harness.delete
команда.
Чтобы переименовать тестовые обвязки, используйте свойства UI обвязки или sltest.harness.set
команда.
Чтобы сделать копию внешне сохраненной тестовой обвязки, используйте sltest.harness.clone
команда или сохраняет тестовую обвязку в новое имя с помощью Save> Save as.
Удаление или переименование файлов обвязки за пределами Simulink вызывают неточный harnessInfo.xml
файл и проблемы, загружающие тестовые обвязки.
Можно измениться, как модель хранит тестовые обвязки в различных фазах жизненного цикла модели. Например:
Разработайте свою модель с помощью внутренних тестовых обвязок так, чтобы можно было более легко совместно использовать модель для анализа. Когда вы завершаете свой проект и помещаете модель при контроле изменений, преобразуете во внешние обвязки.
Используйте управляемую изменением модель в качестве начальной точки для нового проекта. Протестируйте существующую модель с внешними обвязками, чтобы не изменять его. Затем создайте копию существующей модели. Преобразуйте во внутренние обвязки для фазы новой разработки.
Изменить устройство хранения данных тестовой обвязки во внешний (или внутренний):
Перейдите к верхней части основной модели.
На вкладке Apps, под верификацией модели, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests нажмите Manage Test Harnesses> Convert to External Harnesses или Convert to Internal Harnesses.
Диалоговое окно предоставляет информацию о процедуре преобразования и затронутых тестовых обвязках. Нажмите Yes, чтобы продолжиться.
Обвязки преобразованы.
Преобразование во внешние тестовые обвязки создает файл SLX для каждой тестовой обвязки и XML-файла информации об обвязке <modelName>_harnessInfo.xml
.
Обратно пропорционально преобразование во внутренние тестовые обвязки перемещает файлы SLX тестовой обвязки и harnessInfo.xml
файл.
Когда компонент модели имеет тестовую обвязку, значок появляется в нижнем правом углу блока. Чтобы просмотреть тестовые обвязки, кликните по значку. Чтобы открыть тестовую обвязку, кликните по мозаике.
Чтобы просмотреть тестовые обвязки для схемы блока модели, кликните по значку отступления в холсте модели. Чтобы открыть тестовую обвязку, кликните по мозаике.
Чтобы перечислить открытые тесты, которые относятся к тестовой обвязке, кликните по значку в холсте тестовой обвязки. Можно кликнуть по имени теста и перейти к тесту в менеджере по Тесту.
Можно экспортировать тестовые обвязки, чтобы разделить модели, который полезен для архивации тестовых обвязок или совместного использования проекта тестовой обвязки, не совместно используя модель.
Экспортировать отдельную тестовую обвязку:
На вкладке Apps, под верификацией модели, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests выберите Manage Test Harnesses> Detach and Export.
Диалоговое окно подтверждает экспорт обвязки. Нажмите OK.
Введите имя файла для отдельной модели.
Обвязка преобразует в отдельную модель. Преобразование удаляет обвязку из основной модели и повреждает отношение к основной модели.
Экспортировать все обвязки в модели:
Перейдите к верхнему уровню тестовой обвязки.
Не выберите блоки.
На вкладке Apps, под верификацией модели, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests выберите Manage Test Harnesses> Detach and Export.
Диалоговое окно подтверждает экспорт обвязки. Нажмите OK.
Обвязки преобразуют, чтобы разделить модели. Преобразование удаляет обвязки из основной модели и повреждает отношения к основной модели.
Смотрите 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.0005 ownerFullPath: 'sltestTestSequenceExample/shift_controller' ownerType: 'Simulink.SubSystem' isOpen: 0 canBeOpened: 1 lockMode: 0 verificationMode: 0 saveExternally: 0 rebuildOnOpen: 0 rebuildModelData: 0 postRebuildCallback: '' graphical: 0 origSrc: 'Test Sequence' origSink: 'Test Assessment' synchronizationMode: 0
Клонируйте тестовую обвязку
Клонируйте тестовую обвязку с помощью 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 lockMode verificationMode saveExternally rebuildOnOpen rebuildModelData postRebuildCallback graphical origSrc origSink synchronizationMode
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™ дает вам способность переместить/клонировать тестовые обвязки от исходного владельца целевому владельцу, не имея необходимость компилировать модель. Можно переместиться или клонироваться:
Подсистема использует через подсистемы. Целевая подсистема могла также быть в различной модели.
Обвязки для компонентов библиотеки через библиотеки.
Чтобы переместить или клонировать обвязки, щелкните правой кнопкой по холсту Simulink и выберите Test Harness> Manage Test Harnesses. Диалоговое окно Manage Test Harness открывает и перечисляет тестовые обвязки, сопоставленные с подсистемой/блоком, заданной в Filter by harness owner. Нажмите Actions, чтобы получить доступ к опциям Перемещения и Клона.
Выберите целевой путь и назовите вашу тестовую обвязку.