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