matlab.unittest.selectors.HasBaseFolder class

Пакет: 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.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