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