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