Если ваша модель включает экземпляры блоков от библиотеки, можно протестировать и исходный блок в библиотеке и отдельные экземпляры блока в других моделях. Во-первых, создайте тестовые обвязки для блока библиотеки, чтобы протестировать ваш проект. Если блок библиотеки удовлетворяет ваши требования, создайте тестовые обвязки для соединенных блоков и протестируйте экземпляры подсистемы. Можно переместить тестовые обвязки от библиотеки до экземпляра и экземпляра в библиотеку.
Эта процедура обрисовывает в общих чертах рабочий процесс в качестве примера для тестирования подсистем библиотеки и соединенных подсистем.
Создайте тест и тестовую обвязку для подсистемы библиотеки.
Протестируйте подсистему библиотеки. Если это приводит ваши требования к сбою, пересмотрите проект и протестируйте снова.
Заблокируйте библиотеку, когда ваши тесты передадут.
В вашей модели создайте соединенную подсистему и сохраните тестовые обвязки библиотеки.
Сравните вывод соединенного экземпляра к тому из блока библиотеки с помощью эквивалентного теста.
Создайте дополнительные тесты и тестовые обвязки для соединенного экземпляра.
Продвиньте тестовую обвязку от соединенной подсистемы до библиотеки, если вы хотите включать тестовую обвязку с соединенными подсистемами будущего.
Тестовая обвязка для подсистемы библиотеки имеет определенные свойства:
Библиотеки не компилируют, таким образом, тестовая обвязка для подсистемы библиотеки не использует скомпилированные атрибуты, такие как тип данных или частота дискретизации.
Тестовая обвязка для подсистемы библиотеки не генерирует подсистемы преобразования для вводов и выводов блока.
Тестовая обвязка подсистемы библиотеки не использует нажатие или восстанавливает операции, потому что библиотеки не используют параметры конфигурации.
Когда вы создаете соединенную подсистему из подсистемы библиотеки, тестовые обвязки копируют в соединенный экземпляр. Если вам не нужны тестовые обвязки, можно удалить их. Для получения инструкций по удалению всех тестовых обвязок из модели смотрите, Управляют Тестовыми обвязками.
Когда вы создаете тестовую обвязку для соединенной подсистемы, обвязка сопоставляет с соединенной подсистемой, не подсистемой библиотеки. Можно переместить тестовую обвязку от соединенной подсистемы до подсистемы библиотеки. Например, эта соединенная подсистема Controller
имеет три тестовых обвязки. Перемещать тестовую обвязку Requirements_Tests1
в библиотеку:
Кликните по значку обвязки на соединенной подсистеме.
Кликните по значку Harness Operations.
Выберите Move to Library.
Диалоговое окно сообщает вам, что перемещение обвязки удаляет его из соединенной подсистемы.
После подтверждения обвязка появляется с подсистемой библиотеки.
Можно применить итеративный проект и протестировать рабочий процесс к библиотекам путем тестирования блока библиотеки в тестовой обвязке и обновления компонента под тестом. Изменения в компоненте под тестом синхронизируются с библиотекой, когда вы закрываете тестовую обвязку.
Если вы сделали, чтобы библиотека блокировалась, чей проект завершен, установите свои тестовые обвязки предотвращать изменения в компоненте под тестом. Можно установить это свойство, когда вы создаете тестовую обвязку или после создания обвязки. Смотрите Создают Тестовые обвязки и Избранные Свойства.
Проверьте допускающую повторное использование подсистему в библиотеке и в большей системе.
Этот пример демонстрирует тест, который подтверждает, что блок библиотеки соответствует короткому набору требований. После тестирования блока библиотеки вы выполняете базовый тест соединенного блока и получаете базовые результаты. Вы затем продвигаете базовую тестовую обвязку библиотеку.
Блок библиотеки управляет простой heatpump системой путем предоставления сигналов включения - выключения к вентилятору и компрессору, и определения heatpump режима (нагревание или охлаждение).
Откройте тестовый файл
Введите следующее, чтобы сохранить пути и имена файлов для примера, и открыть тестовый файл. Тестовый файл содержит тест для блока библиотеки и для экземпляра блока в модели с обратной связью.
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. Тестовая обвязка перемещается в блок библиотеки Controller.
close_system(library,0); close_system(system,0); clear(filePath,library,system,testFile); sltest.testmanager.clear; sltest.testmanager.clearResults;