Как правило, с тестами на основе скриптов, вы создаете тестовый файл и передаете имя файла функции runtests
, явным образом не создавая комплект объектов Test
. Если вы создаете явный тестовый набор, существуют дополнительные функции, доступные в тестировании на основе скриптов. Эти функции включают тесты выбора и использование плагинов, чтобы настроить исполнителя тестов. Для дополнительной функциональности рассмотрите использование Функциональных модульных тестов или Тестов модулей, основанных на классах.
Чтобы создать тестовый набор из теста на основе скриптов непосредственно, используйте функцию 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);
Кроме того, можно создать тестовый набор из всех тестовых файлов в заданной папке с помощью метода TestSuite.fromFolder
. Если вы знаете имя конкретного теста в вашем тестовом файле на основе скриптов, можно создать тестовый набор из того теста с помощью TestSuite.fromName
.
С явным тестовым набором используйте селекторы, чтобы совершенствовать ваш комплект. Несколько из селекторов применимы только для основанных на классах тестов, но можно выбрать тесты для комплекта на основе тестового имени:
Используйте аргумент пары "имя-значение" 'Name'
в методе генерации комплекта, таком как fromFile
.
Используйте экземпляр selectors
и дополнительный экземпляр constraints
.
Используйте эти подходы в методе генерации комплекта, такие как fromFile
, или создайте комплект и отфильтруйте его с помощью метода TestSuite.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)
Если вы используете один из методов создания комплекта с селектором или парой "имя-значение", среда тестирования создает отфильтрованный комплект. Если вы используете метод TestSuite.selectIf
, среда тестирования создает полный тестовый набор и затем фильтрует его. Для больших тестовых наборов этот подход может иметь последствия производительности.
Если при запуске тесты с функцией runtests
или методом run
TestSuite
или TestCase
, среда тестирования использует плагин DiagnosticsRecordingPlugin
, который записывает диагностику на результатах испытаний.
После того, как вы запустите тесты, можно получить доступ к зарегистрированной диагностике через поле DiagnosticRecord
в свойстве Details
на TestResult
. Например, если ваши результаты испытаний хранятся в переменной results
, найдите записанную диагностику для второго теста в комплекте путем вызова records = 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
.
TestRunner
| TestSuite
| matlab.unittest.constraints
| plugins
| selectors