exponenta event banner

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

Пакет: matlab.unittest.selectors

Селектор для элементов StartSuite, определяемых тегом

Описание

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