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