Запустите набор тестов
results = runtests
запускает все тесты в вашей текущей папке и возвращает результаты как TestResult
объект.
results = runtests(
запускает набор тестов с дополнительными опциями, заданными одним или несколькими tests
,Name,Value
)Name,Value
парные аргументы.
Создайте папку myExample
в вашей текущей рабочей папке и изменении в ту папку.
В myExample
папка, создайте тестовый скрипт, typeTest.m
.
%% Test double class exp = 'double'; act = ones; assert(isa(act,exp)) %% Test single class exp = 'single'; act = ones('single'); assert(isa(act,exp)) %% Test uint16 class exp = 'uint16'; act = ones('uint16'); assert(isa(act,exp))
В myExample
папка, создайте тестовый скрипт, sizeValueTest.m
.
%% Test size exp = [7 13]; act = ones([7 13]); assert(isequal(size(act),exp)) %% Test values act = ones(42); assert(unique(act) == 1)
Запустите все тесты в текущей папке.
runtests
Running sizeValueTest .. Done sizeValueTest __________ Running typeTest ... Done typeTest __________ ans = 1x5 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 5 Passed, 0 Failed, 0 Incomplete. 0.038077 seconds testing time.
MATLAB® запустил 5 тестов. От sizeValueTest
существует 2 проходящих теста и 3 проходящих теста от
typeTest
.
Создайте тестовый файл, показанный ниже, и сохраните его как runtestsExampleTest.m
на вашем пути MATLAB.
function tests = runtestsExampleTest tests = functiontests(localfunctions); function testFunctionOne(testCase)
Запущение тестов.
results = runtests('runtestsExampleTest.m');
Running runtestsExampleTest . Done runtestsExampleTest __________
Если это не существует, создайте тестовый файл, runtestsExampleTest.m
, в примере выше.
Создайте подпапку, tmpTest
, и в той папке создайте следующий runtestsExampleSubFolderTest.m
файл.
function tests = runtestsExampleSubFolderTest tests = functiontests(localfunctions); function testFunctionTwo(testCase)
Запустите тесты от папки выше tmpTest
установкой 'IncludeSubfolders'
к истине.
results = runtests(pwd,'IncludeSubfolders',true);
Running runtestsExampleTest . Done runtestsExampleTest __________ Running runtestsExampleSubFolderTest . Done runtestsExampleSubFolderTest __________
runtests
запустил тесты и в текущей папке и в подпапке.
Если вы не задаете 'IncludeSubfolders'
свойство для runtests
функция, это не запускает тест в подпапке.
results = runtests(pwd);
Running runtestsExampleTest . Done runtestsExampleTest __________
Создайте следующий тестовый файл и сохраните его как runInParallelTest.m
на вашем пути MATLAB®.
function tests = runInParallelTest tests = functiontests(localfunctions); function testA(testCase) verifyEqual(testCase,5,5); function testB(testCase) verifyTrue(testCase,logical(1)); function testC(testCase) verifySubstring(testCase,'SomeLongText','Long'); function testD(testCase) verifySize(testCase,ones(2,5,3),[2 5 3]); function testE(testCase) verifyGreaterThan(testCase,3,2); function testF(testCase) verifyEmpty(testCase,{},'Cell array is not empty.'); function testG(testCase) verifyMatches(testCase,'Some Text','Some [Tt]ext');
Запустите тесты параллельно. Запущение тестов параллельно требует Parallel Computing Toolbox™. Среда тестирования может варьироваться порядок и количество групп или который тестирует его, включает в каждую группу.
results = runtests('runInParallelTest','UseParallel',true);
Split tests into 7 groups and running them on 4 workers. ---------------- Finished Group 2 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 3 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 1 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 4 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 6 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 5 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 7 ---------------- Running runInParallelTest . Done runInParallelTest __________
В вашей рабочей папке создайте testZeros.m
. Этот класс содержит четыре метода тестирования.
classdef testZeros < matlab.unittest.TestCase properties (TestParameter) type = {'single','double','uint16'}; outSize = struct('s2d',[3 3], 's3d',[2 5 4]); end methods (Test) function testClass(testCase, type, outSize) testCase.verifyClass(zeros(outSize,type), type); end function testSize(testCase, outSize) testCase.verifySize(zeros(outSize), outSize); end function testDefaultClass(testCase) testCase.verifyClass(zeros, 'double'); end function testDefaultSize(testCase) testCase.verifySize(zeros, [1 1]); end function testDefaultValue(testCase) testCase.verifyEqual(zeros,0); end end end
Полный тестовый набор имеет 11 тестовых элементов: 6 от testClass
метод, 2 от testSize
метод, и 1 каждый от testDefaultClass
, testDefaultSize
, и testDefaultValue
методы.
В командной строке запустите всю параметризацию для testSize
метод.
runtests('testZeros/testSize')
Running testZeros .. Done testZeros __________ ans = 1x2 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 2 Passed, 0 Failed, 0 Incomplete. 0.045418 seconds testing time.
runtests
функция выполнила два параметризованных теста от testSize
метод. В качестве альтернативы можно задать имя процедуры тестирования с runtests('testZeros','ProcedureName','testSize')
.
Запустите тестовые элементы, которые используют outSize
'ParameterProperty' .
runtests('testZeros','ParameterProperty','outSize')
Running testZeros ........ Done testZeros __________ ans = 1x8 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 8 Passed, 0 Failed, 0 Incomplete. 0.052035 seconds testing time.
runtests
функция выполнила восемь тестов, которые используют outSize
'ParameterProperty' : шесть от testClass
метод и два от testSize
метод.
Запустите тестовые элементы, которые используют single
'ParameterName' .
runtests('testZeros','ParameterName','single')
Running testZeros .. Done testZeros __________ ans = 1x2 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 2 Passed, 0 Failed, 0 Incomplete. 0.009007 seconds testing time.
runtests
функция выполнила два теста от testClass
метод, которые используют outSize
'ParameterName' .
tests
— Массив тестовКомплект тестов, заданных как вектор символов или массив ячеек из символьных векторов. Каждый вектор символов в массиве ячеек может содержать имя тестового файла, тестового класса, имени элемента тестового набора, пакет, содержащий ваши тестовые классы, папка, содержащая ваши тестовые файлы или папку проекта, содержащую тестовые файлы.
Пример: runtests('ATestFile.m')
Пример: runtests('ATestFile/aTest')
Пример: runtests('mypackage.MyTestClass')
Пример: runtests(pwd)
Пример: runtests({'mypackage.MyTestClass','ATestFile.m',pwd,'mypackage.subpackage'})
Пример: runtests('C:/projects/project1/')
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
runtests(tests,'Name','productA_*')
запуски тестируют элементы с именем, которое запускается с 'productA_'
.'BaseFolder'
— Имя основной папкиИмя основной папки, которая содержит файл, задающий тестовый класс, функцию или скрипт, заданный как вектор символов. Этот аргумент фильтрует TestSuite
элементы массива. Для тестового элемента, который будет включен в комплект, тестовый элемент должен содержаться в заданной основной папке. Используйте подстановочный символ *
совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
совпадать с отдельным символом. Для тестовых файлов, заданных в пакетах, основная папка является родительским элементом папки пакета верхнего уровня.
'Debug'
— Индикатор, чтобы применить возможности отладкиfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы применить возможности отладки при выполнении tests
, заданный как false
или true
(0 или
1
). Например, если с непройденным тестом сталкиваются, среда приостанавливает выполнение теста, чтобы ввести режим отладки.
Типы данных: логический
'IncludeSubfolders'
— Индикатор, чтобы запустить тесты в подпапкахfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы запустить тесты в подпапках, заданных как false
или true
(0 или
1
). По умолчанию среда запускает тесты в заданных папках, но не в их подпапках.
Типы данных: логический
'IncludeSubpackages'
— Индикатор, чтобы запустить тесты в подпакетахfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы запустить тесты в подпакетах, заданных как false
или true
(0 или
1
). По умолчанию среда запускает тесты в заданных пакетах, но не в их подпакетах.
Типы данных: логический
'IncludeReferencedProjects'
— Индикатор, чтобы включать тесты от ссылок на проектыfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы включать тесты от ссылок на проекты, заданных как логический false
или true
. Для получения дополнительной информации о ссылках на проекты смотрите, Разбивают на компоненты Крупные проекты.
Типы данных: логический
'LoggingLevel'
— Максимальный уровень многословия для регистрируемой диагностикиmatlab.unittest.Verbosity
перечислениеМаксимальный уровень многословия для регистрируемой диагностики, включенной для тестового прогона, заданного как целочисленное значение от 0 до 4, или как matlab.unittest.Verbosity
объект перечисления. runtests
функция включает диагностику, которая регистрируется на этом уровне и ниже. Целочисленные значения соответствуют членам matlab.unittest.Verbosity
перечисление.
runtests
по умолчанию включает диагностику, регистрируемую в
matlab.unittest.Verbosity.Terse
уровень (уровень 1). Чтобы исключить регистрируемую диагностику, задайте LoggingLevel
как Verbosity.None
(уровень 0).
Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов log
или log
метод.
Числовое представление | Имя элемента перечисления | Описание многословия |
---|---|---|
0
| None | Никакая информация |
1
| Terse | Минимальная информация |
2
| Concise | Умеренный объем информации |
3
| Detailed | Некоторая дополнительная информация |
4
| Verbose | Большая дополнительная информация |
'OutputDetail'
— Отобразите уровень для деталей событияmatlab.unittest.Verbosity
перечислениеОтобразите уровень для деталей события, заданных как целочисленное значение от 0 до 4, или как matlab.unittest.Verbosity
объект перечисления. Целочисленные значения соответствуют членам matlab.unittest.Verbosity
перечисление.
runtests
функционируйте сбой отображений и регистрируемые события с суммой детали, заданной OutputDetail
. По умолчанию runtests
события отображений в matlab.unittest.Verbosity.Concise
уровень (уровень 2).
Числовое представление | Имя элемента перечисления | Описание многословия |
---|---|---|
0
| None | Никакая информация |
1
| Terse | Минимальная информация |
2
| Concise | Умеренный объем информации |
3
| Detailed | Некоторая дополнительная информация |
4
| Verbose | Большая дополнительная информация |
'Name'
— Имя элемента комплектаИмя элемента комплекта, указанного как вектор символов. Этот аргумент фильтрует TestSuite
элементы массива. Для среды тестирования, чтобы запустить тест, Name
свойство тестового элемента должно совпадать с указанным именем. Используйте подстановочный символ, *
, совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
, совпадать с отдельным символом.
'ParameterName'
— Имя параметраИмя параметра используется элементом тестового набора, указанным как вектор символов. Этот аргумент фильтрует TestSuite
элементы массива. Используйте подстановочный символ *
совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
совпадать с отдельным символом.
'ParameterProperty'
— Имя свойства параметризацииИмя свойства параметризации используется элементом тестового набора, указанным как вектор символов. Этот аргумент фильтрует TestSuite
элементы массива. Используйте подстановочный символ *
совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
соответствовать к отдельному символу.
'ProcedureName'
— Имя процедуры тестирования в тестеИмя процедуры тестирования, заданной как вектор символов. Этот аргумент фильтрует TestSuite
элементы массива. Используйте подстановочный символ, *
, совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
чтобы соответствовать только одному символу.
В основанном на классах тесте, ProcedureName
имя метода тестирования. В функциональном тест это - имя локальной функции, которая содержит тест. В тесте на основе скриптов это - имя, сгенерированное из заголовка экспериментального участка. В отличие от Name
, имя процедуры тестирования не включает класса или имени пакета или информации о параметризации.
'ReportCoverageFor'
— Путь к исходному коду, чтобы включать в отчет покрытия кодаПуть к исходному коду, чтобы включать в отчет покрытия кода, заданный как вектор символов, массив строк или массив ячеек из символьных векторов. Используя эту опцию с runtests
запускает заданные тесты и представляет отчет покрытия кода для заданных файлов кода. Отчет показывает, какие линии в исходном коде выполнялись тестами.
Исходный код может быть абсолютным или относительным путем к одной или нескольким папкам или к файлам, которые имеют .m
или .mlx
расширение.
Пример: runtests(tests,'ReportCoverageFor','mySource.m')
Типы данных: char |
string
| cell
'Strict'
— Индикатор, чтобы применить строгие проверкиfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы применить строгие проверки при выполнении tests
, заданный как false
или true
(0 или
1
). Например, среда генерирует отказ проверки, если тест выдает предупреждение.
Типы данных: логический
'Superclass'
— Имя класса, из которого выводит тестовый классИмя класса, который тестовый класс выводит из, заданный как скаляр строки или вектор символов. Этот аргумент фильтрует TestSuite
элементы массива.
'Tag'
— Имя тестового тега элементовИмя тестового тега элементов, заданного как вектор символов или скаляр строки. Этот аргумент фильтрует TestSuite
элементы массива. Используйте подстановочный символ *
совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
совпадать с отдельным символом.
'UseParallel'
— Индикатор, чтобы запустить тесты параллельноfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы запустить тесты параллельно, заданный как false
или true
(0 или
1
). runtests
по умолчанию запускает тесты в сериале. Если вы устанавливаете
UseParallel
к true
, runtests
функция делит тестовый набор на отдельные группы и запускает группы параллельно если:
Parallel Computing Toolbox установлен.
Открытый параллельный пул существует, или автоматическое создание пула включено в Параллельных Настройках.
В противном случае, runtests
запускает тесты в сериале независимо от значения для UseParallel
.
Запущение тестов параллельно требует Parallel Computing Toolbox. Среда тестирования может варьироваться порядок и количество групп или который тестирует его, включает в каждую группу.
Тестирование параллельно не может быть совместимо с другими опциями. Например, тестирование происходит в сериале если 'UseParallel'
и 'Debug'
оба установлены в истину.
Типы данных: логический
functiontests
| matlab.unittest.TestResult
| matlab.unittest.TestRunner
| matlab.unittest.TestSuite
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.