matlab.unittest.

Класс: matlab.unittest.
Пакет: matlab.unittest

Создайте массив TestSuite из всех тестов в пакете

Синтаксис

suite = matlab.unittest.TestSuite.fromPackage(package)
suite = matlab.unittest.TestSuite.fromPackage(package,s)
suite = matlab.unittest.TestSuite.fromPackage(___,Name,Value)

Описание

пример

suite = matlab.unittest.TestSuite.fromPackage(package) создает массив TestSuite изо всех методов Test всех тестов, содержавшихся в package, и возвращает тот массив в suite. Метод не является рекурсивным, возвращая только те тесты непосредственно в заданном пакете.

пример

suite = matlab.unittest.TestSuite.fromPackage(package,s) создает массив TestSuite из всех тестов, содержавшихся в package, которые удовлетворяют условия, заданные селектором, s.

пример

suite = matlab.unittest.TestSuite.fromPackage(___,Name,Value) создает массив TestSuite с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

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

package

Имя желаемого пакета, чтобы найти тесты, заданные как вектор символов или представить скаляр в виде строки.

s

Селектор, заданный как экземпляр класса от пакета matlab.unittest.selector.

Аргументы в виде пар имя-значение

'BaseFolder'

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

'ExternalParameters'

Массив экземпляров matlab.unittest.parameters.Parameter для использования в параметризованных тестах. Среда использует эти внешние параметры вместо соответствующих параметров, которые заданы в параметризованном тесте. Для получения дополнительной информации смотрите Использование Внешние Параметры в Параметризованном Тесте.

'IncludingSubpackages'

Индикатор для того, включать ли подпакеты в массив TestSuite, заданный как false или true (logical 0 или 1). Этим свойством является false по умолчанию. Можно задать его как true во время конструкции.

'Name'

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

'ParameterName'

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

'ParameterProperty'

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

'ProcedureName'

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

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

'Superclass'

Имя класса, который тестовый класс выводит от, заданный как скаляр строки или вектор символов. Этот аргумент фильтрует элементы массива TestSuite.

'Tag'

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

Выходные аргументы

suite

Набор тестов, заданных как массив matlab.unittest.Test.

Примеры

развернуть все

Добавьте класс matlab.unittest.TestSuite в текущий список импорта.

import matlab.unittest.TestSuite;
suite = TestSuite.fromPackage('mypackage.subpackage');
result = run(suite)

Запустите тесты в mypackage включая все подпакеты.

suite = TestSuite.fromPackage('mypackage','IncludingSubpackages',true);
result = run(suite)

В вашей рабочей папке создайте новый пакет путем создания новой папки, +myPackage. В той папке создайте следующий тестовый файл 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

Тестовый класс содержит два параметризованных метода тестирования, testClass и testSize.

В командной строке создайте тестовый набор из всех параметризованных тестов, которые используют свойство 'outSize' параметра.

import matlab.unittest.TestSuite;
import matlab.unittest.selectors.HasParameter;

suite = TestSuite.fromPackage('myPackage', ...
    HasParameter('Property','outSize'));
{suite.Name}'
ans = 

    'myPackage.testZeros/testClass(type=single,outSize=s2d)'
    'myPackage.testZeros/testClass(type=single,outSize=s3d)'
    'myPackage.testZeros/testClass(type=double,outSize=s2d)'
    'myPackage.testZeros/testClass(type=double,outSize=s3d)'
    'myPackage.testZeros/testClass(type=uint16,outSize=s2d)'
    'myPackage.testZeros/testClass(type=uint16,outSize=s3d)'
    'myPackage.testZeros/testSize(outSize=s2d)'
    'myPackage.testZeros/testSize(outSize=s3d)'

Создайте папку +myPackage и класс testZeros.m от предыдущего примера.

В командной строке создайте тестовый набор из всех параметризованных тестов, которые используют свойство 'outSize' параметра.

import matlab.unittest.TestSuite;

suite = TestSuite.fromPackage('myPackage', ...
    'ParameterProperty', 'outSize');
{suite.Name}'
ans = 

    'myPackage.testZeros/testClass(type=single,outSize=s2d)'
    'myPackage.testZeros/testClass(type=single,outSize=s3d)'
    'myPackage.testZeros/testClass(type=double,outSize=s2d)'
    'myPackage.testZeros/testClass(type=double,outSize=s3d)'
    'myPackage.testZeros/testClass(type=uint16,outSize=s2d)'
    'myPackage.testZeros/testClass(type=uint16,outSize=s3d)'
    'myPackage.testZeros/testSize(outSize=s2d)'
    'myPackage.testZeros/testSize(outSize=s3d)'

Советы

  • Корневая папка (папки), где package задан, должна быть на пути MATLAB® при создании suite с помощью этого метода, а также когда suite запущен.

Смотрите также

| | |

Введенный в R2013a