Управляйте тестовыми обвязками

Внутренние и внешние тестовые обвязки

Можно сохранить тестовые обвязки внутренне как часть файла модели SLX, или внешне в отдельных файлах SLX. Модель хранит все тестовые обвязки или внутренне или внешне; не возможно использовать оба типа устройства хранения данных обвязки в одной модели. Вы выбираете внутреннее или внешнее устройство хранения данных тестовой обвязки, когда вы создаете первую тестовую обвязку. Если ваша модель уже имеет тестовые обвязки, можно преобразовать между типами хранения обвязки.

Если вы храните свою модель в системе контроля изменений, рассматриваете использование внешних тестовых обвязок. Внешние тестовые обвязки позволяют вам создать или изменить обвязку, не изменяя образцовый файл. Если вы планируете совместно использовать свою модель часто, рассмотрите использование внутренних тестовых обвязок, чтобы упростить управление файлами. Создание или изменение внутренней тестовой обвязки изменяют ваш файл модели SLX. И внутренние и внешние тестовые обвязки предлагают ту же синхронизацию, продвигают, восстанавливают, и функциональность интерфейса значка.

Смотрите создают тестовые обвязки и выбирают свойства.

Управляйте внешними тестовыми обвязками

Обвязки, сохраненные внешне, используют отдельный файл SLX для каждой обвязки и файл <modelName>_harnessInfo.xml, содержащий метаданные, соединяющие модель и обвязки. Изменение тестовых обвязок может изменить файл harnessInfo.xml.

Следуйте этим инструкциям для внешних тестовых обвязок:

Предупреждение

Не удаляйте файл harnessInfo.xml. Удаление файла harnessInfo.xml отключает отношение между моделью и обвязками, которые не могут быть регенерированы из модели.

  • Файл harnessInfo.xml должен быть перезаписываем, чтобы сохранить изменения в тестовой обвязке или основной модели.

  • Сохраните файл harnessInfo.xml в той же папке как основная модель. Если файл harnessInfo.xml и модель находятся в отдельных папках, основная модель открывает, но не представляет тестовые обвязки.

  • Директории, содержащие файлы SLX тестовой обвязки, должны быть на пути MATLAB®.

  • Если вы преобразовываете внутренние тестовые обвязки во внешние тестовые обвязки, новые файлы SLX сохраняют в текущую рабочую папку.

  • Если вы преобразовываете внешние тестовые обвязки во внутренние тестовые обвязки, внешние файлы SLX могут быть где угодно на пути MATLAB.

  • Если ваша модель использует внешние тестовые обвязки, только создайте копию своей модели с помощью File > Save As из образцового меню. Используя File > Save As копирует внешние тестовые обвязки в папку назначения новой модели и сохраняет информацию обвязки текущей.

    Копирование образцового файла на диске не скопирует внешние обвязки, сопоставленные с моделью.

  • Только измените или удалите тестовые обвязки с помощью Simulink® UI или команд:

    • Чтобы удалить тестовые обвязки, используйте миниатюру пользовательский интерфейс или команда sltest.harness.delete.

    • Чтобы переименовать тестовые обвязки, используйте свойства UI обвязки или команду sltest.harness.set.

    • Чтобы сделать копию внешне сохраненной тестовой обвязки, используйте команду sltest.harness.clone или сохраните тестовую обвязку в новое имя с помощью File > Save As.

    Удаление или переименование файлов обвязки за пределами Simulink вызывают неточный файл harnessInfo.xml и проблемы, загружающие тестовые обвязки.

Преобразуйте между внутренними и внешними тестовыми обвязками

Можно измениться, как модель хранит тестовые обвязки в различных фазах образцового жизненного цикла. Например:

  • Разработайте свою модель с помощью внутренних тестовых обвязок так, чтобы можно было более легко совместно использовать модель для анализа. Когда вы завершаете свой проект и помещаете модель при контроле изменений, преобразовываете во внешние обвязки.

  • Используйте управляемую изменением модель в качестве отправной точки для нового проекта. Протестируйте существующую модель с внешними обвязками, чтобы не изменять его. Затем создайте копию существующей модели. Преобразуйте во внутренние обвязки для фазы новой разработки.

Изменить устройство хранения данных тестовой обвязки на внешний (или внутренний):

  1. Перейдите к верхней части основной модели.

  2. Выберите Analysis> Test Harness> Convert To External (Internal) Harnesses.

  3. Диалоговое окно предоставляет информацию о процедуре преобразования и затронутых тестовых обвязках. Нажмите Yes, чтобы продолжиться.

    Обвязки преобразованы.

  4. Преобразование во внешние тестовые обвязки создает файл SLX для каждой тестовой обвязки и XML-файла информации об обвязке <modelName>_harnessInfo.xml.

    Обратно пропорционально преобразование во внутренние тестовые обвязки перемещает файлы SLX тестовой обвязки и файл harnessInfo.xml.

Предварительный просмотр и открытые тестовые обвязки

Когда компонент модели имеет тестовую обвязку, значок появляется в нижнем правом углу блока. Чтобы просмотреть тестовые обвязки, кликните по значку. Чтобы открыть тестовую обвязку, кликните по мозаике.

Чтобы просмотреть тестовые обвязки для схемы блока модели, кликните по значку отступления в образцовом холсте. Чтобы открыть тестовую обвязку, кликните по мозаике.

Найдите тесты связанными с тестовой обвязкой

Чтобы перечислить открытые тесты, которые относятся к тестовой обвязке, кликните по значку в холсте тестовой обвязки. Можно кликнуть по имени теста и перейти к тесту в менеджере по Тесту.

Экспортируйте тестовые обвязки, чтобы разделить модели

Можно экспортировать тестовые обвязки, чтобы разделить модели, который полезен для архивации тестовых обвязок или совместного использования проекта тестовой обвязки, не совместно используя модель.

  • Экспортировать отдельную тестовую обвязку:

    1. Из меню тестовой обвязки выберите Analysis> Test Harness> Detach and Export Harness.

    2. Диалоговое окно подтверждает экспорт обвязки. Нажмите OK.

    3. Введите имя файла для отдельной модели.

      Обвязка преобразовывает в отдельную модель. Преобразование удаляет обвязку из основной модели и повреждает отношение к основной модели.

  • Экспортировать все обвязки в модели:

    1. Перейдите к верхнему уровню тестовой обвязки.

    2. Не выберите блоки.

    3. Из образцового меню выберите Analysis> Test Harness> Detach and Export Harnesses.

    4. Диалоговое окно подтверждает экспорт обвязки. Нажмите OK.

      Обвязки преобразовывают, чтобы разделить модели. Преобразование удаляет обвязки из основной модели и повреждает отношения к основной модели.

Смотрите sltest.harness.export.

Клонируйте и экспортируйте тестовую обвязку в отдельную модель

Этот пример демонстрирует клонирование существующей тестовой обвязки и экспорт клонированной обвязки к отдельной модели. Это может быть полезно, если вы хотите создать копию тестовой обвязки как отдельная модель, но оставить тестовую обвязку сопоставленной с компонентом модели.

Высокоуровневый рабочий процесс

  1. Если вы не знаете точные свойства тестовой обвязки, вы хотите клонировать, получить их использующий sltest.harness.find. Вам нужен владелец обвязки ID и имя обвязки.

  2. Клонируйте тестовую обвязку с помощью sltest.harness.clone.

  3. Экспортируйте тестовую обвязку в отдельную модель с помощью 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.0012
          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, чтобы получить доступ к опциям Перемещения и Клона.

Выберите целевой путь и назовите вашу тестовую обвязку.

Смотрите также

Функции