Расширение тестов на основе скриптов

Обычно с тестами на основе скриптов вы создаете тестовый файл и передаете имя файла в 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 классы.

См. также

| | | |

Похожие темы