matlab.unittest.selectors. Класс HasProcedureName

Пакет: matlab.unittest.selectors

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

Описание

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

Конструкция

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

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

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

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

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

Пример: "Test1"

Пример: ContainsSubstring ('тест')

Свойства

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

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

Примеры

свернуть все

Создайте следующий тестовый класс в файле, 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

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