test harness является блоком модели, которую можно использовать для тестирования, редактирования или отладки Simulink® модель. В основной модели электрическая обвязка связывается с компонентом модели или с моделью верхнего уровня. Тестовая обвязка содержит отдельное рабочее пространство модели и конфигурацию модели. Тестовая обвязка связана с основной моделью и может быть получен через холст модели.
При создании внешней обвязки также создается XML- файл метаданных. XML- файл содержит уникальный идентификатор модели проекта, который поддерживает связь между моделью и ее обвязкой. Файл метаданных не должен находиться в одной папке с моделью, пока они оба находятся в MATLAB® путь.
Тестовая модель тестовой обвязки строится вокруг тестируемого компонента, который связывает обвязку с основной моделью. Если вы редактируете тестируемый компонент в обвязке, основная модель обновляется, когда вы закрываете обвязку. Можно сгенерировать тестовую обвязку для:
Компонент модели, такой как подсистема, библиотечный блок, Subsystem Reference блок или Model блок. Тестовая обвязка изолирует компонент в отдельной среде симуляции. Если вы преобразовываете Subsystem или Subsystem Reference блок в Model блок, тестовые обвязки переносятся в модель-ссылку (см. «Факторы о тестовой обвязке»).
Модель верхнего уровня. Тестируемый компонент является Model блоком, ссылающимся на основную модель. Можно также создать тестовую обвязку в модели подсистемы.
Когда вы связываете тестовую обвязку с компонентом модели, рабочая область модели тестовой обвязки содержит копии параметров, связанных с компонентом. Для примера предположим, что вы создаете тестовую обвязку для компонента, который содержит блок Gain, а затем добавляете блок второго Gain к обвязке.
g параметра определяет часть тестируемого компонента, поэтому рабочая область модели тестовой обвязки содержит копию g.
a параметра определяет часть основной модели вне тестируемого компонента, поэтому рабочая область модели тестовой обвязки не содержит копию a.
Параметром h является коэффициент усиления блока Gain, который вы добавили к обвязке. Поскольку этот блок находится вне тестируемого компонента, h существует только в рабочей области модели тестовой обвязки.
При связывании обвязки с верхним уровнем основной модели рабочая область модели тестовой обвязки не содержит копий параметров, относящихся к компоненту. Тестируемый компонент является Model блоком, который ссылается на основную модель, поэтому параметры остаются в основном рабочем пространстве модели. Для примера предположим, что вы создаете тестовую обвязку для модели верхнего уровня, которая содержит блок Gain, а затем добавляете блок второго Gain к обвязке.
Тестируемый компонент ссылается на основную модель, и g параметра существует в основном рабочем пространстве модели. Рабочая область модели тестовой обвязки не содержит копию g.
Параметром h является коэффициент усиления блока Gain, который вы добавили к обвязке. Поскольку этот блок находится вне тестируемого компонента, h существует только в рабочей области модели тестовой обвязки.
Параметры в тестовую обвязку разрешаются к наиболее локальным рабочим областям. Параметры разрешаются к рабочей области модели тестовой обвязки, затем к рабочей области системной модели, затем к базовому рабочему пространству MATLAB.
Можно создать тестовую обвязку для следующих типов компонентов модели:
Model блоки
Подсистема Ссылки блоков
Subsystem блоки
Переиспользуемые подсистемы библиотеки, которые имеют функциональные интерфейсы и находятся на верхнем уровне библиотеки
Stateflow® блоки, включая диаграммы Stateflow, блоки Truth Table, блоки State Transition Table и блоки Test Sequence
C Caller блоки
Блоки Function MATLAB
Пользовательские функциональные блоки
Откройте только одну тестовую обвязку за раз для каждой модели Simulink.
Не комментируйте тестируемый компонент в тестовую обвязку. Комментарии к тестируемому компоненту могут привести к неожиданному поведению.
Если у подсистемы есть тестовая обвязка, вы не можете развернуть содержимое подсистемы в модель, которая содержит подсистему. Удалите тестовую обвязку перед расширением подсистемы. Для получения дополнительной информации см. раздел «Расширение содержимого подсистемы».
Тестовые обвязки, присоединенные к моделям подсистем:
Всегда синхронизироваться с базовой моделью
Создаются без компиляции
Не поддерживайте обратные коллбэки после сборки
Не поддерживайте режим верификации SIL/PIL
Не входные входы автоматической формы
Subsystem Reference блоки синхронизируют свои параметры блоков, но не их содержимое.
Когда вы преобразовываете Subsystem или Subystem Reference блок в Model блок, тестовые обвязки передаются в модель-ссылку. Обвязки на Subsystem блоке преобразуются в обвязки на блок-схеме. Вложенные обвязки в подсистеме копируются в идентичные блоки в модели-ссылке. Все перенесённые обвязки являются внутренними обвязками в модели-ссылке. Тестовые обвязки могут быть переименованы при их переносе. Отзывы о переносе обвязки можно увидеть на панели Complete Conversion Conversion Advisor или в командной строке MATLAB.
Эти ограничения применяются к преобразованию Subsystem или Subystem Reference блока в блок Model:
SIL и PIL- обвязкам не передаются.
Потребности в тестовой обвязке для подсистемы не переносятся. Их необходимо скопировать вручную.
Если ваша тестовая обвязка содержит блок To Workspace, основная переменная не сохраняется в базовом рабочем пространстве после завершения теста. После завершения теста базовое рабочее пространство восстанавливается в исходном состоянии.
Тестовые обвязки не поддерживаются для объектов Stateflow следующих типов:
Атомарные субдиаграммы
Состояния на основе Simulink
Функции Simulink
Функции MATLAB
Для моделей дифференцирования не поддерживаются тестовые обвязки Upgrade Advisor и XML.
Тестовая обвязка с источником блоков Signal Builder не поддерживает:
Основанные на кадрах сигналы
Комплексные сигналы
Сигналы переменного размера
Для тестовой обвязки с блоком Test Sequence или диаграммой Stateflow в качестве источника все входы тестируемого компонента должны работать с теми же шагами расчета.
Эти факторы применяются к сбору покрытия в тестовую обвязку:
Загрузка результатов покрытия в модель или агрегирование результатов покрытия по моделям требуют модели, соответствующей результатам покрытия. Поэтому для выполнения агрегированного набора переадресации используйте тестовые обвязки, настроенные для автоматической синхронизации тестируемого компонента. Установите SynchronizationMode значение Synchronize on harness open and close
. Для получения дополнительной информации см. «Синхронизация изменений между тестовой обвязкой и моделью».
Если тестовая обвязка сконфигурирована для синхронизации тестируемого компонента при открытии или закрытии обвязки, результаты покрытия тестовой обвязки связаны с основной моделью. Когда вы закрываете тестовую обвязку, результаты покрытия остаются активными в памяти. Можно агрегировать покрытие с дополнительными результатами, собранными из основной модели или другой синхронизированной тестовой обвязки.
Если для тестовой обвязки настроена синхронизация только тестируемого компонента при ручном нажатии или перестроении, результаты покрытия связаны с тестовой обвязкой.
Когда вы закрываете тестовую обвязку, результаты покрытия удаляются из памяти.
Если тестируемый проект отличается между тестовой обвязкой и основной моделью, вы не можете агрегировать результаты покрытия.
Можно агрегировать результаты покрытия с помощью основной модели, если компонент в проекте теста не отличается, но вы должны вручную загрузить результаты покрытия в основную модель. Смотрите cvload функции ( Simulink Coverage).
Для получения информации о покрытии см. Раздел «Сбор покрытия в тестах»