matlab.unittest.TestSuite.fromFile

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

Создание тестового набора массив от тестового файла

Описание

пример

suite = matlab.unittest.TestSuite.fromFile(file) создает TestSuite массив от всех тестов в file. Когда тестовый набор запущен, MATLAB® изменяет текущую папку в папку, которая задает содержание теста и добавляет его в путь на время тестового прогона.

пример

suite = matlab.unittest.TestSuite.fromFile(file,s) создает TestSuite массив от всех тестов в file это удовлетворяет условиям, заданным селектором, s.

пример

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

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

file

Абсолютный или относительный путь к тестовому файлу в виде вектора символов или строкового скаляра.

s

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'BaseFolder'

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

'ExternalParameters'

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

'Name'

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

'ParameterName'

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

'ParameterProperty'

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

'ProcedureName'

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

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

'Superclass'

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

'Tag'

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

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

suite

Набор тестов в виде matlab.unittest.Test массив.

Примеры

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

Функция для модульного тестирования:

function res = add5(x)
% ADD5 Increment input by 5.
if ~isa(x,'numeric')
    error('add5:InputMustBeNumeric','Input must be numeric.')
end
res = x + 5;
end

TestCase класс, содержащий методы тестирования:

classdef Add5Test < matlab.unittest.TestCase
    methods (Test)
        function testDoubleOut(testCase)
            actOutput = add5(1);
            testCase.verifyClass(actOutput,'double')
        end
        function testNonNumericInput(testCase)
            testCase.verifyError(@()add5('0'),'add5:InputMustBeNumeric')
        end
    end
end

Создайте тестовый набор из Add5Test файл класса.

suite = matlab.unittest.TestSuite.fromFile('Add5Test.m')
result = run(suite);
Running Add5Test
..
Done Add5Test
__________

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

В командной строке создайте тестовый набор из всех параметрированных методов тестирования в testZeros.m использование HasParameter селектор.

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

suite = TestSuite.fromFile('testZeros.m', HasParameter)
suite = 

  1×8 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

Tests Include:
   5 Unique Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.

Создайте тестовый набор только из тестовых элементов от testSize метод с помощью HasName селектор с StartsWithSubstring ограничение.

import matlab.unittest.selectors.HasName;
import matlab.unittest.constraints.StartsWithSubstring;

suite = TestSuite.fromFile('testZeros.m',...
    HasName(StartsWithSubstring('testZeros/testSize')));
{suite.Name}'
ans = 

    'testZeros/testSize(outSize=s2d)'
    'testZeros/testSize(outSize=s3d)'

Тестовый набор содержит два параметрированных теста от testSize метод.

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

В командной строке создайте тестовый набор из всех методов тестирования в testZeros.m это имеет имя начиная с 'testZeros/testSize'. Этот тестовый набор содержит параметрированные тесты от testSize метод.

import matlab.unittest.TestSuite;

suite = TestSuite.fromFile('testZeros.m', 'Name', 'testZeros/testSize*');
{suite.Name}'
ans = 

    'testZeros/testSize(outSize=s2d)'
    'testZeros/testSize(outSize=s3d)'

Чтобы гарантировать, что тестовый набор состоит из тестовых элементов, сопоставленных с одним конкретным методом тестирования, используйте fromMethod метод TestSuite.

В командной строке создайте тестовый набор из всех методов тестирования в testZeros.m это имеет имя, заканчивающееся в 'Size'.

import matlab.unittest.TestSuite;

suite = TestSuite.fromFile('testZeros.m', 'Name', '*Size');
{suite.Name}'
ans = 

    'testZeros/testDefaultSize'

Обратите внимание на то, что элементы от testSize метод не включен в тестовый набор. Имя этих элементов содержит информацию о параметризации, и поэтому это не заканчивается 'Size'.

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

suite = TestSuite.fromFile('testZeros.m', 'ParameterName', 'double');
{suite.Name}'
ans = 

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

Чтобы создать тот же тестовый набор с помощью селекторов, используйте suite = TestSuite.fromFile('testZeros.m', HasParameter('Name','double')).

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

| |

Введенный в R2013a