testsuite

Создайте комплект тестов

Описание

пример

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 метод.

Входные параметры

свернуть все

Комплект тестов, заданных как массив строк, вектор символов или массив ячеек из символьных векторов. Каждый вектор символов в массиве ячеек может содержать имя тестового файла, тестового класса, имени элемента тестового набора, пакет, содержащий ваши тестовые классы, папка, содержащая ваши тестовые файлы или папку проекта, содержащую тестовые файлы.

Пример: 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: suite = testsuite(tests,'Name','productA_*') создает тестовый набор из tests это имеет имена начиная с 'productA_'.

Имя папки, которая содержит файл, задающий тестовый класс, функцию или скрипт в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite элементы массива. Для среды тестирования, чтобы включать тест в комплект, одна из заданных основных папок должна содержать тот тестовый элемент. Если ни один из тестовых элементов не будет совпадать с основной папкой, пустой тестовый набор будет возвращен. Используйте подстановочный символ * совпадать с любым количеством символов. Используйте символа вопросительного знака, ? совпадать с отдельным символом. Для тестовых файлов, заданных в пакетах, основная папка является родительским элементом папки пакета верхнего уровня.

Индикатор, чтобы включать тесты в подпапки в комплекте в виде false или true(0 или 1). По умолчанию среда создает комплект из тестов в заданных папках а не в их подпапках.

Типы данных: логический

Индикатор, чтобы включать тесты в подпакеты в комплекте в виде false или true(0 или 1). По умолчанию среда создает комплект из тестов в заданном пакете а не в их подпакетах.

Типы данных: логический

Индикатор, чтобы включать тесты от ссылок на проекты в виде false или true. Для получения дополнительной информации о ссылках на проекты смотрите, Разбивают на компоненты Крупные проекты.

Типы данных: логический

Имя элемента комплекта в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite элементы массива. Для среды тестирования, чтобы включать тест в комплект, Name свойство тестового элемента должно совпадать с одним из указанных имен. Если ни один из тестовых элементов не будет иметь соответствующее имя, пустой тестовый набор будет возвращен. Используйте подстановочный символ * совпадать с любым количеством символов. Используйте символа вопросительного знака, ? совпадать с отдельным символом.

Имя параметра, используемого элементом тестового набора в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite элементы массива. Для среды тестирования, чтобы включать тест в комплект, Parameterization свойство тестового элемента должно содержать по крайней мере одно из заданных названий параметра. Если ни один из тестовых элементов не будет иметь соответствующее название параметра, пустой тестовый набор будет возвращен. Используйте подстановочный символ * совпадать с любым количеством символов. Используйте символа вопросительного знака, ? совпадать с отдельным символом.

Имя свойства, которое задает параметр, используемый элементом тестового набора в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite элементы массива. Для среды тестирования, чтобы включать тест в комплект, Parameterization свойство тестового элемента должно содержать по крайней мере одно из заданных имен свойства. Если ни один из тестовых элементов не будет иметь соответствующее имя свойства, пустой тестовый набор будет возвращен. Используйте подстановочный символ * совпадать с любым количеством символов. Используйте символа вопросительного знака, ? совпадать с отдельным символом.

Имя процедуры тестирования в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite элементы массива. Для среды тестирования, чтобы включать тест в комплект, ProcedureName свойство тестового элемента должно совпадать с одними из заданных имен процедур. Если ни один из тестовых элементов не будет иметь соответствующее имя процедуры, пустой тестовый набор будет возвращен. Используйте подстановочный символ * совпадать с любым количеством символов. Используйте символа вопросительного знака, ? совпадать с отдельным символом.

В основанном на классах тесте, ProcedureName имя метода тестирования. В функциональном тесте это - имя локальной функции, которая содержит тест. В тесте на основе скриптов это - имя, сгенерированное из заголовка экспериментального участка. В отличие от Name, имя процедуры тестирования не включает класса или имени пакета или информации о параметризации.

Имя класса, из которого выводит тестовый класс в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite элементы массива. Для среды тестирования, чтобы включать тест в комплект, TestClass свойство тестового элемента должно указать на тестовый класс, который выводит из одного из заданных классов. Если ни один из тестовых элементов не будет совпадать с классом, пустой тестовый набор будет возвращен.

Имя тестового тега, используемого элементом тестового набора в виде массива строк, вектора символов или массива ячеек из символьных векторов. Этот аргумент фильтрует TestSuite элементы массива. Для среды тестирования, чтобы включать тест в комплект, Tags свойство тестового элемента должно содержать по крайней мере одно из заданных имен тега. Если ни один из тестовых элементов не будет иметь соответствующее имя тега, пустой тестовый набор будет возвращен. Используйте подстановочный символ * совпадать с любым количеством символов. Используйте символа вопросительного знака, ? совпадать с отдельным символом.

Советы

  • Если вы не должны создавать тестовый набор явным образом, используйте runtests или runperf создать комплект неявно прежде, чем запустить тесты.

  • Альтернативный способ создать явный тестовый набор состоит в том, чтобы использовать matlab.unittest.TestSuite методы.

Введенный в R2016a