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

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

Программируемый доступ диагностического теста

Если при запуске тесты с runtests функционируйте или run метод TestSuite или TestCase, среда тестирования использует DiagnosticsRecordingPlugin плагин, который записывает диагностику на результатах испытаний.

После того, как вы запустите тесты, можно получить доступ к зарегистрированной диагностике через DiagnosticRecord поле в Details свойство на TestResult. Например, если ваши результаты испытаний хранятся в переменной results, найдите записанную диагностику для второго теста в комплекте путем вызова records = result(2).Details.DiagnosticRecord.

Записанной диагностикой является DiagnosticRecord объекты. Чтобы получить доступ к конкретным типам диагностического теста для конкретного теста, используйте selectFailedselectPassedselectIncomplete, и 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 классы.

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

| | | |

Похожие темы