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