exponenta event banner

matlab.unittest. TestSuite.fromFolder

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

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

Описание

пример

suite = matlab.unittest.TestSuite.fromFolder(folder) создает TestSuite массив из всех Test методы всех конкретных TestCase классы, содержащиеся в folder и возвращает этот массив в suite. Если тесты основаны на функциях или скриптах, Test файл включен в TestSuite массив, если он следует соглашению об именовании начала или окончания слова «test», которое не учитывает регистр. Тесты на основе классов не должны следовать этому соглашению об именовании. Метод не является рекурсивным, возвращая только те тесты, которые находятся непосредственно в указанной папке.

При запуске набора тестов MATLAB ® изменяет текущую папку на папку, определяющую содержимое теста, и добавляет ее в путь на время выполнения теста.

пример

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

пример

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

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

folder

Папка, содержащая тесты, заданная как вектор символа или скаляр строки. folder может быть абсолютным или относительным путем к нужной папке.

s

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

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

'BaseFolder'

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

'ExternalParameters'

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

'IncludingSubfolders'

Индикатор того, следует ли включать тесты из любого folder подпапки, исключая пакеты, классы и частные папки, указанные как 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.fromFolder(pwd);
result = run(suite);
suite = TestSuite.fromFolder(pwd, 'IncludingSubfolders', true);
result = run(suite);

В рабочей папке создайте новую папку, myTests. В этой папке создайте следующее 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.

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

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

suite = TestSuite.fromFolder('myTests', HasParameter('Name','double'));
{suite.Name}'
ans = 

    'testZeros/testClass(type=double,outSize=s2d)'
    'testZeros/testClass(type=double,outSize=s3d)'

Создать myTests папка и testZeros.m из предыдущего примера.

Создание набора тестов для всех тестов, использующих имя параметра 'double'.

import matlab.unittest.TestSuite;

suite = TestSuite.fromFolder('myTests', 'ParameterName', 'double');
{suite.Name}'
ans = 

    'testZeros/testClass(type=double,outSize=s2d)'
    'testZeros/testClass(type=double,outSize=s3d)'
Представлен в R2013a