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

Пакет: matlab.unittest.selectors

Селектор для элементов TestSuite определяется тегом

Описание

Селектор HasTag фильтрует элементы массива TestSuite, определенные тестовым тегом элементов.

Конструкция

matlab.unittest.selectors.HasTag создает селектор для элементов TestSuite, определенных тестовым тегом элементов. Когда вы инстанцируете HasTag без входных параметров, получившийся массив TestSuite содержит только элементы с одним или несколькими тегами.

matlab.unittest.selectors.HasTag(t) создает селектор для элементов TestSuite, определенных тестовым тегом элементов, t. Можно задать имя как вектор символов, представить скаляр в виде строки, или как экземпляр класса matlab.unittest.constraints.Constraint. Если указанное имя, t, является вектором символов или скаляром строки, среда тестирования создает ограничение IsEqualTo t как ожидаемое значение.

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

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

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

Протестируйте тег элементов, заданный как вектор символов, представьте в виде строки скаляр или экземпляр matlab.unittest.constraints.Constraint. Если тестовый тег элементов отвечает следующим условиям, TestSuite содержит тест:

  • Если t является вектором символов или скаляром строки, тестовый тег элементов является заданным значением.

  • Если t является ограничением, тестовый тег элементов является значением, которое удовлетворяет заданное ограничение.

Свойства

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

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

Примеры

свернуть все

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

classdef ExampleTest < matlab.unittest.TestCase
    methods (Test)
        function testA (testCase)
            % test code
        end
    end
    methods (Test, TestTags = {'Unit'})
        function testB (testCase)
            % test code
        end
        function testC (testCase)
            % test code
        end
    end
    methods (Test, TestTags = {'Unit','FeatureA'})
        function testD (testCase)
            % test code
        end
    end
    methods (Test, TestTags = {'System','FeatureA'})
        function testE (testCase)
            % test code
        end
    end
end

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

import matlab.unittest.TestSuite
import matlab.unittest.selectors.HasTag

suite = TestSuite.fromClass(?ExampleTest)
suite = 

  1×5 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

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

Кликните по гиперссылке для 3 Unique Tags, чтобы отобразить все теги в комплекте.

       Tag    
    __________

    'FeatureA'
    'System'  
    'Unit'    

Выберите все элементы тестового набора, которые имеют тег 'Unit'.

s1 = suite.selectIf(HasTag('Unit'))
s1 = 

  1×3 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

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

Выберите все элементы тестового набора, которые не содержат тег 'FeatureA'.

s2 =  suite.selectIf(~HasTag('FeatureA'));
{s2.Name}
ans =

  1×3 cell array

    {'ExampleTest/testB'}    {'ExampleTest/testC'}    {'ExampleTest/testA'}

Выберите все элементы тестового набора, которые не имеют никаких тегов.

s3 =  suite.selectIf(~HasTag)
s3 = 

  Test with properties:

                  Name: 'ExampleTest/testA'
         ProcedureName: 'testA'
             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.

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

Используйте селектор HasTag для максимальной гибкости, чтобы создать тестовые наборы из тегов. Также во время конструкции тестового набора, можно отфильтровать тестовый набор Используя пару "имя-значение" 'Tag'. Например,

s = TestSuite.fromClass(?ExampleTest,'Tag','Unit');

Можно также выбрать и запустить теговые тесты с помощью пары "имя-значение" 'Tag' с функцией runtests. Например,

runtests('ExampleTest.m','Tag','Unit')

Представленный в R2015a