Создайте набор тестов
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
'ParameterProperty' .
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
'ParameterProperty' : шесть от 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
). По умолчанию среда создает набор из тестов в заданных папках а не в их подпапках.
Типы данных: логический
'IncludeSubpackages'
— Индикатор, чтобы включать тесты в подпакетыfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы включать тесты в подпакеты в наборе в виде false
или true
(0 или
1
). По умолчанию среда создает набор из тестов в заданном пакете а не в их подпакетах.
Типы данных: логический
'IncludeReferencedProjects'
— Индикатор, чтобы включать тесты от ссылок на проектыfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы включать тесты от ссылок на проекты в виде false
или true
. Для получения дополнительной информации о ссылках на проекты смотрите, Разбивают на компоненты Крупные проекты.
Типы данных: логический
'Name'
— Имя элемента набораИмя элемента набора в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite
элементы массива. Для среды тестирования, чтобы включать тест в набор, Name
свойство Test
элемент должен совпадать с одним из имен, заданных Name
. Если ни один из Test
элементы имеют соответствующее имя, пустой тестовый набор возвращен. Используйте подстановочный символ *
совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
совпадать с отдельным символом.
'ParameterProperty'
— Имя свойства параметризацииИмя тестового свойства класса, которое задает параметр, используемый элементом тестового набора в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite
элементы массива. Для среды тестирования, чтобы включать тест в набор, Parameterization
свойство Test
элемент должен содержать по крайней мере одно из имен свойства, заданных ParameterProperty
. Если ни один из Test
элементы имеют соответствующее имя свойства, пустой тестовый набор возвращен. Используйте подстановочный символ *
совпадать с любым количеством символов. Используйте символа вопросительного знака, ?
соответствовать к отдельному символу.
'ParameterName'
— Имя параметраИмя параметра, используемого элементом тестового набора в виде массива строк, вектора символов или массива ячеек из символьных векторов. MATLAB генерирует названия параметра на основе тестового свойства класса, которое задает параметры:
Если значение свойства является массивом ячеек из символьных векторов, MATLAB генерирует названия параметра от значений в массиве ячеек. В противном случае MATLAB задает названия параметра как value1
, value2
, …, valueN
.
Если значение свойства является структурой, MATLAB генерирует названия параметра от полей структуры.
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
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.