testsuite

Создайте комплект тестов

Синтаксис

suite = testsuite
suite = testsuite(tests)
suite = testsuite(tests,Name,Value)

Описание

пример

suite = testsuite создает комплект тестов от вашей текущей папки и возвращает комплект как массив Test.

Чтобы запустить тестовый набор, созданный с testsuite, используйте метод run matlab.unittest.TestSuite, matlab.unittest.TestRunner или matlab.perftest.TimeExperiment.

suite = testsuite(tests) создает комплект из набора заданных тестов.

пример

suite = testsuite(tests,Name,Value) создает комплект тестов с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

Создайте папку myExample в своей текущей рабочей папке, сделайте ее вашей текущей рабочей папкой и создайте несколько тестов.

В папке myExample создайте тест на основе скриптов, onesTest.m m.

%% Test double class
expClass = 'double';
act = ones;
assert(isa(act,expClass))

%% Test single class
expClass = 'single';
act = ones('single');
assert(isa(act,expClass))

%% Test uint16 class
expClass = 'uint16';
act = ones('uint16');
assert(isa(act,expClass))

%% Test size
expSize = [7 13];
act = ones([7 13]);
assert(isequal(size(act),expSize))

%% Test values
act = ones(42);
assert(unique(act) == 1)

В папке myExample создайте функциональный тест, eyeTest.m m.

function tests = eyeTest
tests = functiontests(localfunctions);

function doubleClassTest(testCase)
actValue = eye;
verifyClass(testCase,actValue,'double')

function singleClassTest(testCase)
actValue = eye('single');
verifyClass(testCase,actValue,'single')

function uint16ClassTest(testCase)
actValue = eye('uint16');
verifyClass(testCase,actValue,'uint16')

function sizeTest(testCase)
expSize = [7 13];
actValue = eye(expSize);
verifySize(testCase,actValue,expSize);

function valueTest(testCase)
actValue = eye(42);
verifyEqual(testCase,unique(diag(actValue)),1)    % diagonal are 1s
verifyEqual(testCase,unique(triu(actValue,1)),0)  % upper tri vals are 0
verifyEqual(testCase,unique(tril(actValue,-1)),0) % lower tri vals are 0

Создайте тестовый набор из всех тестов в текущей папке.

suite = testsuite
suite = 

  1×10 Test array with properties:

    Name
    BaseFolder
    ProcedureName
    SharedTestFixtures
    Parameterization
    Tags

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

Если onesTest и eyesTest являются единственными тестами в вашей папке, MATLAB® создает комплект 10 тестов.

Просмотрите имена тестов в suite.

{suite.Name}'
ans = 

    'eyeTest/doubleClassTest'
    'eyeTest/singleClassTest'
    'eyeTest/uint16ClassTest'
    'eyeTest/sizeTest'
    'eyeTest/valueTest'
    'onesTest/TestDoubleClass'
    'onesTest/TestSingleClass'
    'onesTest/TestUint16Class'
    'onesTest/TestSize'
    'onesTest/TestValues'

Создайте тестовый набор из всех тестов в eyeTest.

suite2 = testsuite('eyeTest')
suite2 = 

  1×5 Test array with properties:

    Name
    BaseFolder
    ProcedureName
    SharedTestFixtures
    Parameterization
    Tags

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

В вашей рабочей папке создайте основанный на классах тест, testZeros.m 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

Полный тестовый набор имеет 11 тестовых элементов: 6 из метода testClass, 2 из метода testSize, и 1 каждый от testDefaultClass, testDefaultSize и методов testDefaultValue.

Создайте тестовый набор из тестовых элементов с тестовыми именами, которые содержат 'Default'.

suite = testsuite('testZeros','Name','*Default*')
suite = 

  1x3 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

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

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

suite = testsuite('testZeros','ParameterProperty','outSize')
suite = 

  1x8 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

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

Тестовый набор содержит восемь тестов, которые используют свойство параметра outSize: шесть из метода testClass и два из метода testSize.

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

свернуть все

Комплект тестов, заданных как вектор символа или массив ячеек из символьных векторов. Каждый вектор символа в массиве ячеек может содержать имя тестового файла, тестового класса, имени элемента тестового набора, пакет, содержащий ваши тестовые классы или папку, содержащую ваши тестовые файлы.

Пример: testsuite ('ATestFile. m

Пример: testsuite ('ATestFile/aTest')

Пример: testsuite ('mypackage. MyTestClass)

Пример: testsuite (pwd)

Пример: testsuite ({'mypackage. MyTestClass','ATestFile.m', pwd, 'mypackage.subpackage'})

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

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

Пример: комплект = testsuite (тесты, 'Имя', 'productA_ *') создает тестовый набор из тестов, которые имеют имена начиная с 'productA _'.

Имя папки, которая содержит файл, задающий тестовый класс, функцию или скрипт, заданный как вектор символа. This argument filters TestSuite array elements., Чтобы включать тестовый элемент в комплект, заданная основная папка должна содержать тот тестовый элемент. Use the wildcard character, *, to match any number of characters. Use the question mark character, ?, чтобы совпадать с отдельным символом. Для тестовых файлов, заданных в пакетах, основная папка является родительским элементом папки пакета верхнего уровня.

Индикатор, чтобы включать тесты в подпапки в комплекте, заданном как false или true (0 или 1). По умолчанию среда создает комплект из тестов в заданных папках а не в их подпапках.

Типы данных: логический

Индикатор, чтобы включать тесты в подпакеты в комплекте, заданном как false или true (0 или 1). По умолчанию среда создает комплект из тестов в заданном пакете а не в их подпакетах.

Типы данных: логический

Имя элемента комплекта, заданного как вектор символа. This argument filters TestSuite array elements. Для среды тестирования, чтобы включать тест в комплект, свойство Name тестового элемента должно совпадать с указанным именем. Use the wildcard character, *, to match any number of characters. Use the question mark character, ?, чтобы совпадать с отдельным символом.

Имя параметра используется элементом тестового набора, заданным как вектор символа. This argument filters TestSuite array elements. Use the wildcard character, *, to match any number of characters. Use the question mark character, ?, чтобы совпадать с отдельным символом.

Имя свойства, которое задает параметр, используемый элементом тестового набора, заданным как вектор символа. This argument filters TestSuite array elements. Use the wildcard character, *, to match any number of characters. Use the question mark character, ?, чтобы совпадать с отдельным символом.

Имя процедуры тестирования, заданной как вектор символа. This argument filters TestSuite array elements. Use the wildcard character, *, to match any number of characters. Use the question mark character, ?, to match to exactly one character.

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

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

Имя тестового тега элементов, заданного как вектор символа или скаляр строки. This argument filters TestSuite array elements. Use the wildcard character, *, to match any number of characters. Use the question mark character, ?, to match to exactly one character.

Советы

  • Если вы не должны создавать тестовый набор явным образом, используйте runtests или runperf, чтобы создать комплект неявно прежде, чем запустить тесты.

  • Альтернативный способ создать явный тестовый набор состоит в том, чтобы использовать методы matlab.unittest.TestSuite.

Введенный в R2016a

Была ли эта тема полезной?