matlab.unittest.TestSuite.fromMethod

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

Создание тестового набора массив от одного метода тестирования

Описание

пример

suite = matlab.unittest.TestSuite.fromMethod(testClass,testMethod) создает TestSuite массив от тестового класса описан testClass и метод тестирования описан testMethod и возвращает его в suite.

пример

suite = matlab.unittest.TestSuite.fromMethod(testClass,testMethod,s) создает TestSuite массив от всего Test методы содержатся в testMethod это удовлетворяет условиям, заданным селектором, s.

пример

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

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

testClass

Класс, описывающий методы тестирования в виде meta.class экземпляр, который должен вывести из matlab.unittest.TestCase.

testMethod

Метод тестирования, заданный любым meta.method экземпляр или имя как вектор символов или строковый скаляр. Метод должен быть задан с Test атрибут метода.

s

Селектор в виде экземпляра класса от matlab.unittest.selector пакет.

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

'BaseFolder'

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

'ExternalParameters'

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

'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 массив.

Примеры

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

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

import matlab.unittest.TestSuite;
cls = ?mypackage.MyTestClass;
    
% Create the suite using the method name
suite = TestSuite.fromMethod(cls, 'testMethod');
result = run(suite)
 
% Create the suite using the meta.method instance
metaMethod = findobj(cls.MethodList, 'Name', 'testMethod');
suite = TestSuite.fromMethod(cls, metaMethod);
result = run(suite)

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

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

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

suite = TestSuite.fromMethod(?testZeros,'testClass', ...
    HasParameter('Name','single'));
{suite.Name}'
ans = 

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

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

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

import matlab.unittest.TestSuite;

suite = TestSuite.fromMethod(?testZeros,'testClass', ...
    'ParameterName','single');
{suite.Name}'
ans = 

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

Советы

  • testClass должен быть на пути MATLAB при использовании этого метода, чтобы создать suite, а также когда suite запущен.

Введенный в R2013a