exponenta event banner

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

Пакет: matlab.unittest.selectors

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

Описание

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