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

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

Можно сохранить тестовые обвязки внутренне как часть файла модели 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 файл и проблемы, загружающие тестовые обвязки.

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

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

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

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

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

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

  2. На вкладке Apps, под верификацией модели, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests нажмите Manage Test Harnesses> Convert to External Harnesses или Convert to Internal Harnesses.

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

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

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

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

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

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

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

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

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

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

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

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

    1. На вкладке Apps, под верификацией модели, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests выберите Manage Test Harnesses> Detach and Export.

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

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

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

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

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

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

    3. На вкладке Apps, под верификацией модели, Валидация и Тест, нажимают Simulink Test. Затем на вкладке Tests выберите Manage Test Harnesses> Detach and Export.

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

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

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

Функции

Для просмотра документации необходимо авторизоваться на сайте