matlab.unittest.selectors.HasTag class

Пакет: 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.Constraint класс.

Примеры

свернуть все

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