matlab.unittest.

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

Создайте массив TestSuite из тестового файла

Синтаксис

suite = matlab.unittest.TestSuite.fromFile(file)
suite = matlab.unittest.TestSuite.fromFile(file,s)
suite = matlab.unittest.TestSuite.fromFile(___,Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'BaseFolder'

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

'ExternalParameters'

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

'Name'

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

'ParameterName'

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

'ParameterProperty'

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

'ProcedureName'

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

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

'Superclass'

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

'Tag'

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

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

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