Как правило, с помощью тестов на основе сценариев создается тестовый файл и передается имя файла в runtests функция без явного создания набора Test объекты. При создании явного набора тестов в тестировании на основе сценариев доступны дополнительные возможности. Эти функции включают выбор тестов и использование подключаемых модулей для настройки тестового питателя. Для получения дополнительных функциональных возможностей рассмотрите возможность использования функциональных модульных тестов или модульных тестов на основе классов.
Для создания набора тестов непосредственно из теста на основе сценариев используйте testsuite функция. Для более явного создания набора тестов используйте matlab.unittest.TestSuite.fromFile способ TestSuite. Тогда вы можете использовать run вместо метода runtests для выполнения тестов. Например, при наличии в файле теста на основе сценария rightTriTolTest.m, эти три подхода эквивалентны.
% Implicit test suite result = runtests('rightTriTolTest.m'); % Explicit test suite suite = testsuite('rightTriTolTest.m'); result = run(suite); % Explicit test suite suite = matlab.unittest.TestSuite.fromFile('rightTriTolTest.m'); result = run(suite);
Кроме того, можно создать набор тестов из всех тестовых файлов в указанной папке с помощью matlab.unittest.TestSuite.fromFolder способ. Если известно имя конкретного теста в файле тестирования на основе сценария, можно создать набор тестов из этого теста с помощью matlab.unittest.TestSuite.fromName.
Используя явный набор тестов, используйте селекторы для уточнения набора. Несколько селекторов применимы только для тестов на основе классов, но можно выбрать тесты для набора на основе имени теста:
Используйте 'Name' аргумент пары имя-значение в методе генерации набора, например matlab.unittest.TestSuite.fromFile.
Использовать selectors экземпляр и необязательный constraints экземпляр.
Используйте эти подходы в методе создания пакета, например: matlab.unittest.TestSuite.fromFileили создайте пакет и выполните его фильтрацию с помощью selectIf способ. Например, в этом списке четыре значения suite эквивалентны.
import matlab.unittest.selectors.HasName import matlab.unittest.constraints.ContainsSubstring import matlab.unittest.TestSuite.fromFile f = 'rightTriTolTest.m'; selector = HasName(ContainsSubstring('Triangle')); % fromFile, name-value pair suite = TestSuite.fromFile(f,'Name','*Triangle*') % fromFile, selector suite = TestSuite.fromFile(f,selector) % selectIf, name-value pair fullSuite = TestSuite.fromFile(f); suite = selectIf(fullSuite,'Name','*Triangle*') % selectIf, selector fullSuite = TestSuite.fromFile(f); suite = selectIf(fullSuite,selector)
При использовании одного из методов создания набора с помощью селектора или пары «имя-значение» структура тестирования создает отфильтрованный набор. Если вы используете selectIf структура тестирования создает полный набор тестов, а затем фильтрует его. Для больших наборов тестов этот подход может иметь последствия для производительности.
В некоторых случаях в структуре тестирования используется DiagnosticsRecordingPlugin для записи результатов диагностики. Платформа использует плагин по умолчанию, если вы делаете одно из следующих действий:
Запуск тестов с помощью runtests функция.
Запуск тестов с помощью testrunner функция без ввода.
Запуск тестов с помощью run способ TestSuite или TestCase классы.
Запустите тесты производительности с помощью runperf функция.
Запустите тесты производительности с помощью run способ TimeExperiment класс.
После выполнения тестов можно получить доступ к записанной диагностике с помощью DiagnosticRecord в поле Details свойство на TestResult объект. Например, если результаты теста хранятся в переменной results, то result(2).Details.DiagnosticRecord содержит записанную диагностику для второго теста в наборе.
Регистрируемая диагностика: DiagnosticRecord объекты. Для доступа к определенным типам диагностики теста используйте selectFailed, selectPassed, selectIncomplete, и selectLogged методы DiagnosticRecord класс.
По умолчанию DiagnosticsRecordingPlugin плагин регистрирует ошибки квалификации и регистрируемые события на matlab.unittest.Verbosity.Terse уровень многословности. Дополнительные сведения см. в разделе DiagnosticsRecordingPlugin и DiagnosticRecord.
Использовать TestRunner объект для настройки способа запуска тестового набора в инфраструктуре. С помощью TestRunner объект можно:
Вывод в командном окне не производится с помощью withNoPlugins способ.
Параллельное выполнение тестов с помощью runInParallel способ.
Добавление подключаемых модулей в тестовый питатель с помощью addPlugin способ.
Например, используйте набор тестов ,suite, чтобы создать бесшумный тестовый питатель и запустить тесты с run способ TestRunner.
runner = matlab.unittest.TestRunner.withNoPlugins; results = runner.run(suite);
Используйте подключаемые модули для дальнейшей настройки тестового питателя. Например, можно перенаправить вывод, определить покрытие кода или изменить реакцию тестового питателя на предупреждения. Дополнительные сведения см. в разделе Добавление подключаемого модуля в тестовый питатель и plugins классы.
matlab.unittest.constraints | plugins | selectors | TestRunner | TestSuite