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

Пакет: matlab.unittest.selectors

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

Описание

Селектор HasBaseFolder фильтрует элементы массива TestSuite, определенные под названием папка, которая содержит файл, который задает тестовый класс или функцию.

Конструкция

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

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

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

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

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

  • Если f является вектором символов, основная папка элемента теста должна точно совпадать с заданной папкой.

  • Если f является ограничением, основная папка элемента теста должна удовлетворить заданное ограничение.

Свойства

Constraint

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

Примеры

свернуть все

Создайте папку, MyTests, в вашей текущей рабочей папке. В этой папке создайте две подпапки, Feature1 и Feature2.

В новом файле Feature1_Test.m, в подпапке Feature1, создает следующий тестовый класс.

classdef Feature1_Test < matlab.unittest.TestCase
    methods (Test)
        function testA1(testCase)
            % test code
        end
        function testB1(testCase)
            % test code
        end
    end
end

В новом файле Feature2_Test.m, в подпапке Feature2, создает следующий тестовый класс.

classdef Feature2_Test < matlab.unittest.TestCase
    methods (Test)
        function testA2(testCase)
            % test code
        end
        function testB2(testCase)
            % test code
        end
    end
end

При необходимости установите свою текущую рабочую папку на папку выше MyTests. В командной строке создайте тестовый набор из папки MyTests и исследуйте содержимое.

import matlab.unittest.TestSuite
import matlab.unittest.selectors.HasBaseFolder;
import matlab.unittest.constraints.ContainsSubstring;

suite = TestSuite.fromFolder('MyTests', 'IncludingSubfolders', true);
{suite.Name}
ans = 

    'Feature1_Test/testA1'    'Feature1_Test/testB1'    'Feature2_Test/testA2'    'Feature2_Test/testB2'

Комплект содержит четыре теста от этих двух тестовых файлов.

Выберите все элементы тестового набора для классов, которые заданы в папке 'Feature1'.

 s1 = suite.selectIf(HasBaseFolder(fullfile(pwd,'MyTests','Feature1')));
{s1.Name}
ans = 

    'Feature1_Test/testA1'    'Feature1_Test/testB1'

Комплект отфильтрованного теста содержит только тестовые элементы от папки Feature1.

Выберите все элементы тестового набора для классов, которые заданы в папках, которые не содержат 'Feature1', и затем исследуют содержимое.

s1 = suite.selectIf(HasBaseFolder(...
    fullfile(pwd,'MyTests','Feature1')));
{s1.Name}
ans = 

    'Feature2_Test/testA2'    'Feature2_Test/testB2'

Комплект отфильтрованного теста только содержит тестовые элементы от папки Feature2.

Также, чтобы сгенерировать отфильтрованный комплект непосредственно, передайте селектор методу TestSuite.fromFolder.

s1 = TestSuite.fromFolder('MyTests',...
    ~HasBaseFolder(ContainsSubstring('Feature1')),...
    'IncludingSubfolders',true);

Введенный в R2014a