Если ваша модель включает экземпляры блоков из библиотеки, можно протестировать и исходный блок в библиотеке и отдельные экземпляры блока в других моделях. Во-первых, создайте тестовые обвязки для библиотечного блока, чтобы протестировать ваш проект. Если библиотечный блок удовлетворяет ваши требования, создайте тестовые обвязки для соединенных блоков и протестируйте экземпляры подсистемы. Можно переместить тестовые обвязки от библиотеки до экземпляра и экземпляра в библиотеку.
Эта процедура обрисовывает в общих чертах рабочий процесс в качестве примера для тестирования подсистем библиотеки и соединенных подсистем.
Создайте тест и тестовую обвязку для подсистемы библиотеки.
Протестируйте подсистему библиотеки. Если это приводит ваши требования к сбою, пересмотрите проект и протестируйте снова.
Заблокируйте библиотеку, когда ваши тесты передадут.
В вашей модели создайте соединенную подсистему и сохраните тестовые обвязки библиотеки.
Сравните выход соединенного экземпляра к тому из библиотечного блока с помощью эквивалентного теста.
Создайте дополнительные тесты и тестовые обвязки для соединенного экземпляра.
Продвиньте тестовую обвязку от соединенной подсистемы до библиотеки, если вы хотите включать тестовую обвязку с соединенными подсистемами будущего.
Тестовая обвязка для подсистемы библиотеки имеет определенные свойства:
Библиотеки не компилируют, таким образом, тестовая обвязка для подсистемы библиотеки не использует скомпилированные атрибуты, такие как тип данных или частота дискретизации.
Тестовая обвязка для подсистемы библиотеки не генерирует подсистемы преобразования для вводов и выводов блока.
Тестовая обвязка подсистемы библиотеки не использует нажатие или восстанавливает операции, потому что библиотеки не используют параметры конфигурации.
Когда вы создаете соединенную подсистему из подсистемы библиотеки, тестовые обвязки копируют в соединенный экземпляр. Если вам не нужны тестовые обвязки, можно удалить их. Для получения инструкций по удалению всех тестовых обвязок из модели смотрите, Управляют Тестовыми обвязками.
Когда вы создаете тестовую обвязку для соединенной подсистемы, обвязка сопоставляет с соединенной подсистемой, не подсистемой библиотеки. Можно переместить тестовую обвязку от соединенной подсистемы до подсистемы библиотеки. Например, эта соединенная подсистема Controller
имеет три тестовых обвязки. Перемещать Requirements_Tests1
тестовая обвязка к библиотеке:
Кликните по значку обвязки на соединенной подсистеме.
Кликните по значку Harness Operations.
Выберите Move to Library.
Диалоговое окно сообщает вам, что перемещение обвязки удаляет его из соединенной подсистемы.
После подтверждения обвязка появляется с подсистемой библиотеки.
Можно применить итеративный проект и протестировать рабочий процесс к библиотекам путем тестирования библиотечного блока в тестовой обвязке и обновления компонента под тестом. Изменения в компоненте под тестом синхронизируются с библиотекой, когда вы закрываете тестовую обвязку.
Если у вас есть библиотечный блок, проект которого завершен, установите свои тестовые обвязки предотвращать изменения в компоненте под тестом. Можно установить это свойство, когда вы создаете тестовую обвязку или после создания обвязки. Смотрите Создают Тестовые обвязки и Избранные Свойства.
Проверьте допускающую повторное использование подсистему в библиотеке и в большей системе.
Этот пример демонстрирует тест, который подтверждает, что библиотечный блок соответствует короткому набору требований. После тестирования библиотечного блока вы выполняете базовый тест соединенного блока и получаете базовые результаты. Вы затем продвигаете базовую тестовую обвязку библиотеку.
Библиотечный блок управляет простой системой теплового насоса путем предоставления сигналов включения - выключения к вентилятору и компрессору, и определения режима теплового насоса (нагревание или охлаждение).
Откройте тестовый файл
Введите следующее, чтобы сохранить пути и имена файлов для примера, и открыть тестовый файл. Тестовый файл содержит тест для библиотечного блока и для экземпляра блока в модели с обратной связью.
filePath = fullfile(matlabroot,'toolbox','simulinktest','simulinktestdemos'); testFile = 'sltestHeatpumpLibraryTests.mldatx'; library = 'sltestHeatpumpLibraryExample'; system = 'sltestHeatpumpLibraryLinkExample'; open(fullfile(filePath,testFile));
Расширьте Тестовый тестовый набор Библиотечного блока и подсветите тест Сценариев Требований в тестовом браузере. Расширьте раздел Test Harness Системы Под Тестом и кликните по стреле, чтобы открыть тестовую обвязку для библиотечного блока.
open_system(library); sltest.harness.open([library '/Controller'],'Requirements_Tests');
Блок Test Sequence устанавливает три сценария для контроллера:
Контроллер в неактивном
Контроллер, активирующий вентилятор только
Контроллер, активирующий нагревание и систему охлаждения
Блок Test Assessment в тестовой обвязке проверяет сигналы на каждый сценарий. Поскольку тестовые воздействия и оценки содержатся в тестовой обвязке, и никакие базовые данные не собираются, тест является тестом симуляции.
Запустите основанный на требованиях тест
В менеджере по тесту запустите тест Сценариев Требований. verify
результаты оператора показывают что control_out
передача сигналов.
Откройте соединенную модель блока
В менеджере по тесту расширьте Тест Экземпляра. Подсветите Базовый Тестовый тест. В Системе Под Тестом кликните по стреле рядом с полем Model, чтобы открыть модель.
sltest.harness.close([library '/Controller'], 'Requirements_Tests'); open_system(system); sim(system);
Контроллер является соединенным блоком к библиотеке. Это сопоставлено с Базовым Тестом тестовой обвязки, который сравнивает результаты симуляции экземпляра против базовых данных. В вашем рабочем процессе успешном базовом тестировании на экземпляры библиотечного блока могут показать, что соединенный блок симулирует правильно в содержании модели. Тестовая обвязка предоставляет температуру синусоиды и получает выход контроллера.
Запустите базовый тест и наблюдайте результаты
В менеджере по тесту нажмите Run, чтобы выполнить тест. Результаты показывают, что базовый тест передает.
Переместите тестовую обвязку в библиотеку
Если вы разрабатываете особенно полезный тест для соединенного блока, можно продвинуть тестовую обвязку от соединенного блока до исходного библиотечного блока. Тестовая обвязка затем копирует во все будущие экземпляры библиотечного блока.
Переместите тестовую обвязку Baseline_controller_tests в библиотечный блок:
1. В sltestHeatpumpLibraryLinkExample модели кликните по значку обвязки и наведите на тестовую обвязку Baseline_controller_tests.
2. Кликните по значку операций обвязки
3. Выберите Move to Library. Диалоговое окно сообщает вам, что операция удаляет тестовую обвязку из экземпляра и добавляет его в библиотеку. Нажать кнопку Да.
4. Тестовая обвязка перемещается в библиотечный блок Контроллера.
close_system(library,0); close_system(system,0); clear(filePath,library,system,testFile); sltest.testmanager.clear; sltest.testmanager.clearResults;