matlab.unittest.selectors.HasTag class

Пакет: matlab.unittest.selectors

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

Описание

The 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