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