matlab.unittest.selectors.HasBaseFolder class

Пакет: matlab.unittest.selectors

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

Описание

The 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.Constraint класс.

Копировать семантику

Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

Создайте папку с именем 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 =

  1×4 cell array

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

Этот набор содержит четыре теста из двух тестовых файлов.

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

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

  1×2 cell array

    {'Feature1_Test/testA1'}    {'Feature1_Test/testB1'}

Отфильтрованный тестовый набор содержит только тестовые элементы из Feature1 папка.

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

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

  1×2 cell array

    {'Feature2_Test/testA2'}    {'Feature2_Test/testB2'}

Отфильтрованный тестовый набор содержит только тестовые элементы из Feature2 папка.

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

s2 = TestSuite.fromFolder('MyTests',...
    ~HasBaseFolder(ContainsSubstring('Feature1')),...
    'IncludingSubfolders',true);
{s2.Name}
ans =

  1×2 cell array

    {'Feature2_Test/testA2'}    {'Feature2_Test/testB2'}
Введенный в R2014a