Создайте набор тестов
suite = testsuite создает набор тестов из текущей папки и возвращает пакет как Test массив.
Чтобы запустить тестовый набор, созданный с testsuite, используйте run метод matlab.unittest.TestSuite, matlab.unittest.TestRunner, или matlab.perftest.TimeExperiment.
suite = testsuite( создает пакет из набора заданных тестов.tests)
suite = testsuite( создает набор тестов с дополнительными опциями, заданными одним или несколькими tests,Name,Value)Name,Value аргументы в виде пар.
Создайте папку myExample в текущей рабочей папке сделайте ее текущей рабочей папкой и создайте пару тестов.
В myExample папка, создайте тест на основе скриптов, onesTest.m.
%% Test double class expClass = 'double'; act = ones; assert(isa(act,expClass)) %% Test single class expClass = 'single'; act = ones('single'); assert(isa(act,expClass)) %% Test uint16 class expClass = 'uint16'; act = ones('uint16'); assert(isa(act,expClass)) %% Test size expSize = [7 13]; act = ones([7 13]); assert(isequal(size(act),expSize)) %% Test values act = ones(42); assert(unique(act) == 1)
В myExample папка, создайте тест на основе функций, eyeTest.m.
function tests = eyeTest tests = functiontests(localfunctions); function doubleClassTest(testCase) actValue = eye; verifyClass(testCase,actValue,'double') function singleClassTest(testCase) actValue = eye('single'); verifyClass(testCase,actValue,'single') function uint16ClassTest(testCase) actValue = eye('uint16'); verifyClass(testCase,actValue,'uint16') function sizeTest(testCase) expSize = [7 13]; actValue = eye(expSize); verifySize(testCase,actValue,expSize); function valueTest(testCase) actValue = eye(42); verifyEqual(testCase,unique(diag(actValue)),1) % diagonal are 1s verifyEqual(testCase,unique(triu(actValue,1)),0) % upper tri vals are 0 verifyEqual(testCase,unique(tril(actValue,-1)),0) % lower tri vals are 0
Создайте тестовый набор из всех тестов в текущей папке.
suite = testsuite
suite =
1×10 Test array with properties:
Name
BaseFolder
ProcedureName
SharedTestFixtures
Parameterization
Tags
Tests Include:
0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.Если onesTest и eyesTest являются единственными тестами в вашей папке, MATLAB® создает набор из 10 тестов.
Просмотрите имена тестов в suite.
{suite.Name}'ans =
'eyeTest/doubleClassTest'
'eyeTest/singleClassTest'
'eyeTest/uint16ClassTest'
'eyeTest/sizeTest'
'eyeTest/valueTest'
'onesTest/TestDoubleClass'
'onesTest/TestSingleClass'
'onesTest/TestUint16Class'
'onesTest/TestSize'
'onesTest/TestValues'Создайте тестовый набор из всех тестов в eyeTest.
suite2 = testsuite('eyeTest')suite2 =
1×5 Test array with properties:
Name
BaseFolder
ProcedureName
SharedTestFixtures
Parameterization
Tags
Tests Include:
0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.В рабочей папке создайте тест на основе классов, 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 методы.
Создайте тестовый набор из тестовых элементов с тестовыми именами, которые содержат 'Default'.
suite = testsuite('testZeros','Name','*Default*')
suite =
1x3 Test array with properties:
Name
ProcedureName
TestClass
BaseFolder
Parameterization
SharedTestFixtures
Tags
Tests Include:
0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
Создайте тестовый набор из тестовых элементов, которые используют outSize свойство параметра.
suite = testsuite('testZeros','ParameterProperty','outSize')
suite =
1x8 Test array with properties:
Name
ProcedureName
TestClass
BaseFolder
Parameterization
SharedTestFixtures
Tags
Tests Include:
5 Unique Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
Тестовый набор содержит восемь тестов, в которых используется outSize свойство параметра: шесть из testClass метод и два из testSize способ.
tests - Массив тестовНабор тестов, заданных в виде строковых массивов, вектора символов или массива векторов символов ячеек. Каждый символьный вектор в массиве ячеек может содержать имя тестового файла, тестового класса, имя тестового набора элемента, пакет, содержащий ваши тестовые классы, папку, содержащую ваши тестовые файлы или папку проекта, содержащую тестовые файлы.
Пример: testsuite('myTestFile.m')
Пример: testsuite('myTestFile/aTest')
Пример: testsuite('mypackage.MyTestClass')
Пример: testsuite(pwd)
Пример: testsuite({'mypackage.MyTestClass','myTestFile.m',pwd,'mypackage.subpackage'})
Пример: testsuite('C:/projects/project1/')
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
suite = testsuite(tests,'Name','productA_*') создает тестовый набор из tests которые имеют имена, начинающиеся с 'productA_'.'BaseFolder' - Имя базовой папкиИмя базовой папки, которая содержит файл, определяющий тестовый класс, функцию или скрипт, заданный как строковые массивы, вектор символов или массив ячеек из векторов символов. Этот аргумент фильтрует TestSuite элементы массива. Чтобы среда тестирования включала тест в набор, Test элемент должен содержаться в одной из базовых папок, заданных BaseFolder. Если ни один из Test элементы соответствуют базовой папке, возвращается пустой тестовый набор. Используйте символ подстановки * для соответствия любому количеству символов. Используйте символа вопросительного знака ? для соответствия одному символу. Для тестовых файлов, определенных в пакетах, базовая папка является родительским элементом папки пакета верхнего уровня.
'IncludeSubfolders' - Индикатор для включения тестов в подпапкиfalse (по умолчанию) | true | 0 | 1Индикатор для включения тестов в подпапки в наборе, указанный как false или true (0 или 1). По умолчанию среда создает набор из тестов в заданных папках, а не в их подпапках.
Типы данных: logical
'IncludeSubpackages' - Индикатор для включения тестов в подпакетыfalse (по умолчанию) | true | 0 | 1Индикатор для включения тестов в подпакеты в наборе, указанный как false или true (0 или 1). По умолчанию среда создает набор из тестов в указанном пакете, а не в их подпакетах.
Типы данных: logical
'IncludeReferencedProjects' - Индикатор для включения тестов из ссылок на проектыfalse (по умолчанию) | true | 0 | 1Индикатор для включения тестов из ссылок на проекты, заданный как false или true. Для получения дополнительной информации о ссылках на проекты см. Раздел «Компонентизация крупных проектов».
Типы данных: logical
'Name' - Имя элемента набораИмя элемента набора, заданное как строковые массивы, вектор символов или массив ячеек из векторов символов. Этот аргумент фильтрует TestSuite элементы массива. Чтобы среда тестирования включала тест в набор, Name свойство Test элемент должен совпадать с одним из имен, заданных в Name. Если ни один из Test элементы имеют совпадающее имя, возвращается пустой тестовый набор. Используйте символ подстановки * для соответствия любому количеству символов. Используйте символа вопросительного знака ? для соответствия одному символу.
'ParameterProperty' - Имя свойства параметризацииИмя свойства тестового класса, который задает параметр, используемый элементом тестового набора, заданный как строковые массивы, вектор символов или массив ячеек векторов символов. Этот аргумент фильтрует TestSuite элементы массива. Чтобы среда тестирования включала тест в набор, Parameterization свойство Test элемент должен содержать по крайней мере одно из имен свойства, заданных в ParameterProperty. Если ни один из Test элементы имеют совпадающее имя свойства, возвращается пустой тестовый набор. Используйте символ подстановки * для соответствия любому количеству символов. Используйте символа вопросительного знака ? чтобы соответствовать одному символу.
'ParameterName' - Имя параметраИмя параметра, используемого элементом test suite, заданное как строковые массивы, вектор символов или массив ячеек векторов символов. MATLAB генерирует имена параметров на основе свойства test class, которое определяет параметры:
Если значение свойства является массивом ячеек из векторов символов, MATLAB генерирует имена параметров из значений в массиве ячеек. В противном случае MATLAB задает имена параметров следующим value1, value2, …, valueN.
Если значение свойства является структурой, MATLAB генерирует имена параметров из полей структуры.
The ParameterName фильтры аргументов TestSuite элементы массива. Чтобы среда тестирования включала тест в набор, Parameterization свойство Test элемент должен содержать по крайней мере одно из имен параметров, заданных ParameterName. Если ни один из Test элементы имеют совпадающее имя параметра, возвращается пустой тестовый набор. Используйте символ подстановки * для соответствия любому количеству символов. Используйте символа вопросительного знака ? для соответствия одному символу.
'ProcedureName' - Имя процедуры тестированияИмя процедуры тестирования, заданное как строковые массивы, вектор символов или массив ячеек векторов символов. Этот аргумент фильтрует TestSuite элементы массива. Чтобы среда тестирования включала тест в набор, ProcedureName свойство Test элемент должен совпадать с одним из имен процедур, заданных ProcedureName. Если ни один из Test элементы имеют совпадающее имя процедуры, возвращается пустой тестовый набор. Используйте символ подстановки * для соответствия любому количеству символов. Используйте символа вопросительного знака ? для соответствия одному символу.
В основанном на классах тесте ProcedureName - имя метода тестирования. В функциональном тесте это имя локальной функции, которая содержит тест. В тесте на основе скриптов это имя сгенерировано из заголовка тестового раздела. В отличие от Nameимя процедуры тестирования не содержит ни имени класса или пакета, ни информации о параметризации.
'Superclass' - Имя класса, из которого выводится тестовый классИмя класса, из которого получают тестовый класс, заданное как строковые массивы, вектор символов или массив ячеек векторов символов. Этот аргумент фильтрует TestSuite элементы массива. Чтобы среда тестирования включала тест в набор, TestClass свойство Test элемент должен указывать на тестовый класс, который получают из одного из классов, заданных Superclass. Если ни один из Test элементы соответствуют классу, возвращается пустой тестовый набор.
'Tag' - Имя тега тестового элементаИмя тестового тега, используемого элементом тестовый набор, задается как строковые массивы, вектор символов или массив ячеек из векторов символов. Этот аргумент фильтрует TestSuite элементы массива. Чтобы среда тестирования включала тест в набор, Tags свойство Test элемент должен содержать по крайней мере одно из имен тегов, заданных в Tag. Если ни один из Test элементы имеют совпадающее имя тега, возвращается пустой тестовый набор. Используйте символ подстановки * для соответствия любому количеству символов. Используйте символа вопросительного знака ? для соответствия одному символу.
Вы можете использовать testsuite функция для создания тестового набора из файла MLDATX (требует Simulink® Test™). Для примера, suite = testsuite('myTestFile.mldatx') создает набор из тестов, заданных в файле myTestFile.mldatx.
Когда вы задаете файл MLDATX, testsuite создает набор, включая все тесты в файле. Вы не можете инструктировать testsuite для создания набора из определенных тестов в файле MLDATX.
Если вам не нужно явно создавать тестовый набор, используйте runtests или runperf чтобы создать набор неявно перед запуском тестов.
Альтернативным способом создать явный тестовый набор является использование matlab.unittest.TestSuite методы.
Когда вы задаете вход в testsuite функция как строковые массивы или массив ячеек векторов символов (для примера, suite = testsuite(["Test1","Test2"])), среда тестирования сортирует массив, чтобы уменьшить общие операции настройки испытательного стенда и отключения. В результате тесты могут выполняться в порядке, отличном от порядка элементов в массиве входа.
Чтобы применить порядок тестового запуска, создайте набор с помощью нескольких вызовов для testsuite. Для примера, чтобы убедиться, что тесты, заданные Test1 запускается перед тестами, заданными Test2, используйте следующий синтаксис:
suite = [testsuite("Test1") testsuite("Test2")]
matlab.unittest.TestSuite | run (TestRunner) | run (TestSuite) | run (TimeExperiment) | runtests | testrunner
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.