Создайте комплект тестов
suite = testsuite
suite = testsuite(tests)
suite = testsuite(tests,Name,Value)
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('ATestFile.m')
Пример: testsuite('ATestFile/aTest')
Пример: testsuite('mypackage.MyTestClass')
Пример: testsuite(pwd)
Пример: testsuite({'mypackage.MyTestClass','ATestFile.m',pwd,'mypackage.subpackage'})
Пример: testsuite('C:/projects/project1/')
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
suite = testsuite(tests,'Name','productA_*')
создает тестовый набор из tests
, которые имеют имена начиная с 'productA_'
.'BaseFolder'
Имя основной папкиИмя папки, которая содержит файл, задающий тестовый класс, функцию или скрипт, заданный как вектор символов. Этот аргумент фильтрует элементы массива TestSuite.
Чтобы включать тестовый элемент в комплект, заданная основная папка должна содержать тот тестовый элемент. Используйте символ подстановки *, чтобы соответствовать любому количеству символов.
Используйте символ вопросительного знака, ?
, чтобы совпадать с отдельным символом. Для тестовых файлов, заданных в пакетах, основная папка является родительским элементом папки пакета верхнего уровня.
'IncludeSubfolders'
Индикатор, чтобы включать тесты в подпапкиfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы включать тесты в подпапки в комплекте, заданном как false
или true
(0
или 1
). По умолчанию среда создает комплект из тестов в заданных папках а не в их подпапках.
Типы данных: логический
'IncludeSubpackages'
Индикатор, чтобы включать тесты в подпакетыfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы включать тесты в подпакеты в комплекте, заданном как false
или true
(0
или 1
). По умолчанию среда создает комплект из тестов в заданном пакете а не в их подпакетах.
Типы данных: логический
'IncludeReferenceProjects'
— Индикатор, чтобы включать тесты от ссылок на проектыfalse
(значение по умолчанию) | true
| 0
| 1
Индикатор, чтобы включать тесты от ссылок на проекты, заданных как логический false
или true
. Для получения дополнительной информации о ссылках на проекты смотрите, Разбивают на компоненты Крупные проекты.
Типы данных: логический
Имя
Имя элемента комплектаИмя элемента комплекта, указанного как вектор символов. Этот аргумент фильтрует элементы массива TestSuite.
Для среды тестирования, чтобы включать тест в комплект, свойство Name
тестового элемента должно совпадать с указанным именем. Используйте символ подстановки *, чтобы соответствовать любому количеству символов.
Используйте символ вопросительного знака, ?
, чтобы совпадать с отдельным символом.
'ParameterName'
Имя параметраИмя параметра используется элементом тестового набора, указанным как вектор символов. Этот аргумент фильтрует элементы массива TestSuite.
Используйте символ подстановки *, чтобы соответствовать любому количеству символов.
Используйте символ вопросительного знака, ?
, чтобы совпадать с отдельным символом.
'ParameterProperty'
Имя свойства параметризацииИмя свойства, которое задает параметр, используемый элементом тестового набора, указанным как вектор символов. Этот аргумент фильтрует элементы массива TestSuite.
Используйте символ подстановки *, чтобы соответствовать любому количеству символов.
Используйте символ вопросительного знака, ?
, чтобы совпадать с отдельным символом.
'ProcedureName'
Имя процедуры тестирования в тестеИмя процедуры тестирования, заданной как вектор символов. Этот аргумент фильтрует элементы массива TestSuite.
Используйте символ подстановки *, чтобы соответствовать любому количеству символов.
Используйте символ вопросительного знака, ?
, чтобы соответствовать точно к одному символу.
В основанном на классах тесте ProcedureName
является именем метода тестирования. В функциональном тест это - имя локальной функции, которая содержит тест. В тесте на основе скриптов это - имя, сгенерированное из заголовка экспериментального участка. В отличие от Name
, имя процедуры тестирования не включает класса или имени пакета или информации о параметризации.
'Superclass'
— Имя класса, от которого выводит тестовый классИмя класса, который тестовый класс выводит от, заданный как скаляр строки или вектор символов. Этот аргумент фильтрует элементы массива TestSuite.
Тег
Имя тестового тега элементовИмя тестового тега элементов, заданного как вектор символов или скаляр строки. Этот аргумент фильтрует элементы массива TestSuite.
Используйте символ подстановки *, чтобы соответствовать любому количеству символов.
Используйте символ вопросительного знака, ?
, чтобы соответствовать точно к одному символу.
Если вы не должны создавать тестовый набор явным образом, используйте runtests
или runperf
, чтобы создать комплект неявно прежде, чем запустить тесты.
Альтернативный способ создать явный тестовый набор состоит в том, чтобы использовать методы matlab.unittest.TestSuite
.
matlab.perftest.TimeExperiment.run
| matlab.unittest.TestRunner.run
| matlab.unittest.TestSuite
| matlab.unittest.TestSuite.run
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.