exponenta event banner

Расширить тесты на основе сценариев

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

См. также

| | | |

Связанные темы