exponenta event banner

matlab.unittest. TestSuite.fromPackage

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

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

Описание

пример

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 элементы массива. Чтобы структура тестирования включала тест в набор, Test элемент должен содержаться в одной из базовых папок, указанных в BaseFolder. Если ни один из Test элементы соответствуют базовой папке, возвращается пустой набор тестов. Использовать подстановочный символ * для соответствия любому количеству символов. Использовать знак вопроса ? для соответствия одному символу.

'ExternalParameters'

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

'IncludingSubpackages'

Индикатор включения подпакетов в TestSuite массив, указанный как false или true (logical 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 элементы имеют соответствующее имя тега, возвращается пустой набор тестов. Использовать подстановочный символ * для соответствия любому количеству символов. Использовать знак вопроса ? для соответствия одному символу.

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

suite

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

Признаки

Statictrue

Сведения об атрибутах методов см. в разделе Атрибуты метода.

Примеры

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

Добавить 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.

В командной строке создайте набор тестов из всех параметризованных тестов, использующих свойство parameter '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 из предыдущего примера.

В командной строке создайте набор тестов из всех параметризованных тестов, использующих свойство parameter '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