matlab.unittest.selectors.HasProcedureName class

Пакет: matlab.unittest.selectors

Селектор для TestSuite элементы определяются именем процедуры

Описание

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

Конструкция

matlab.unittest.selectors.HasProcedureName(n) создает селектор для TestSuite элементы определяются именем процедуры, n.

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

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

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

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

Пример: "Test1"

Пример: ContainsSubstring('Test')

Свойства

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

Условие имя процедуры должно удовлетворить, чтобы быть включенным в тестовый набор, заданный как экземпляр matlab.unittest.constraints.Constraint класс.

Примеры

свернуть все

Создайте следующий тестовый класс в файле, ExampleTest.m, в вашей текущей папке.

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function testPathAdd(testCase)
            % test code
        end
        function testOne(testCase)
            % test code
        end
         function testTwo(testCase)
            % test code
        end
    end
end

В командной строке создайте тестовый набор из ExampleTest.m файл и исследует содержимое.

import matlab.unittest.TestSuite;
import matlab.unittest.selectors.HasProcedureName;
import matlab.unittest.constraints.EndsWithSubstring;

suite = TestSuite.fromFile('ExampleTest.m');
{suite.Name}
ans =

  1×3 cell array

    {'ExampleTest/testPathAdd'}    {'ExampleTest/testOne'}    {'ExampleTest/testTwo'}

Комплект содержит три теста.

Выберите все элементы тестового набора, которые имеют имя процедуры testPathAdd, и исследуйте содержимое.

s1 = suite.selectIf(HasProcedureName("testPathAdd"))
s1 = 

  Test with properties:

                  Name: 'ExampleTest/testPathAdd'
         ProcedureName: 'testPathAdd'
             TestClass: "ExampleTest"
            BaseFolder: 'C:\work'
      Parameterization: [0×0 matlab.unittest.parameters.EmptyParameter]
    SharedTestFixtures: [0×0 matlab.unittest.fixtures.EmptyFixture]
                  Tags: {1×0 cell}

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

Комплект отфильтрованного теста только содержит один тестовый элемент.

Выберите все элементы тестового набора с именем процедуры, которое заканчивается в любом 'One' или 'Two', и исследуйте содержимое.

s1 =  suite.selectIf(HasProcedureName(EndsWithSubstring('One')) | ...
    HasProcedureName(EndsWithSubstring('Two')));
{s1.Name}
ans =

  1×2 cell array

    {'ExampleTest/testOne'}    {'ExampleTest/testTwo'}

Во время конструкции тестового набора создайте тестовый набор, который только содержит тесты с подстрокой 'One'.

import matlab.unittest.constraints.ContainsSubstring;
s2 = TestSuite.fromFile('ExampleTest.m',...
    HasProcedureName(ContainsSubstring('One')))
s2 = 

  Test with properties:

                  Name: 'ExampleTest/testOne'
         ProcedureName: 'testOne'
             TestClass: "ExampleTest"
            BaseFolder: 'C:\work'
      Parameterization: [0×0 matlab.unittest.parameters.EmptyParameter]
    SharedTestFixtures: [0×0 matlab.unittest.fixtures.EmptyFixture]
                  Tags: {1×0 cell}

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

Альтернативы

Используйте HasProcedureName селектор для максимальной гибкости, чтобы создать тестовые наборы из имен процедур. В качестве альтернативы во время конструкции тестового набора, можно отфильтровать тестовый набор с помощью 'ProcedureName' пара "имя-значение". Например, следующие строки кода функционально эквивалентны.

s = TestSuite.fromClass(?ExampleTest,'ProcedureName','Test1');
s = testsuite('ExampleTest.m','ProcedureName','Test1');

Введенный в R2017a