matlab.unittest.selectors.HasSharedTestFixture class

Пакет: matlab.unittest.selectors

Селектор для элементов TestSuite, которые используют общий испытательный стенд

Описание

The HasSharedTestFixture селекторные фильтры TestSuite элементы массива на основе общих испытательных стендов.

Конструкция

matlab.unittest.selectors.HasSharedTestFixture(f) создает селектор для TestSuite элементы на основе их необходимых общих испытательных стендов. Для элемента, который будет выбран для TestSuite массив, он должен использовать фиксатор, которое совместимо с заданным фиксатором, f.

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

расширить все

Общий испытательный стенд, заданное как matlab.unittest.fixtures.Fixture образец. The TestSuite элемент массива должен использовать фиксатор, совместимое с f будет выбран для TestSuite.

Свойства

ExpectedFixture

Общий испытательный стенд, заданное как matlab.unittest.fixtures.Fixture образец в входной параметр, f. The TestSuite элемент массива должен использовать фиксатор, совместимую со ExpectedFixture свойство, которое будет выбрано для TestSuite.

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

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

Примеры

свернуть все

Создайте папку пакета, +mytestpackage, в текущей папке. Этот пакет содержит два тестовых класса.

В +mytestpackage папка, создайте тестовый класс с именем AExampleTest. Этот класс содержит два теста, которые используют подавленный фиксатор предупреждений.

classdef (SharedTestFixtures={ ...
        matlab.unittest.fixtures.SuppressedWarningsFixture( ...
        'MATLAB:rmpath:DirNotFound')}) ...
        AExampleTest < matlab.unittest.TestCase
    methods (Test)
        function testOne(testCase)
            % test code
        end
        function testTwo(testCase)
            % test code
        end
    end
end

В +mytestpackage папка, создайте тестовый класс с именем BExampleTest. Этот класс содержит один тест, который использует фиксатор пути и подавленный фиксатор предупреждений.

classdef (SharedTestFixtures={ ...
        matlab.unittest.fixtures.PathFixture( ...
        fullfile(matlabroot,'help','techdoc','matlab_oop','examples')),...
        matlab.unittest.fixtures.SuppressedWarningsFixture( ...
        'MATLAB:rmpath:DirNotFound')}) ...
        BExampleTest < matlab.unittest.TestCase
    methods(Test)
        function testPathAdd(testCase)
            % test code
        end
    end
end

В командной строке задайте следующие фиксаторы.

pf = matlab.unittest.fixtures.PathFixture(...
    fullfile(matlabroot,'help','techdoc','matlab_oop','examples'));
swf = matlab.unittest.fixtures.SuppressedWarningsFixture(...
    'MATLAB:rmpath:DirNotFound');

Создайте тестовый набор из пакета.

import matlab.unittest.TestSuite
import matlab.unittest.selectors.HasSharedTestFixture

suite = TestSuite.fromPackage('mytestpackage')
suite = 

  1×3 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

Tests Include:
   0 Parameterizations, 2 Unique Shared Test Fixture Classes, 0 Tags.

У тестового набора три тестовых элемента.

Создайте отфильтрованный набор, который содержит только тесты, использующие фиксатор пути, pf.

s1 = suite.selectIf(HasSharedTestFixture(pf));

Получившийся набор, s1, содержит тестовый элемент из BExampleTest, поскольку тест в этом классе использует общий испытательный стенд, pf.

Также передайте селектор в TestSuite.fromPackage метод вместо генерации полного тестового набора, а затем с использованием TestSuite.selectIf метод фильтрации набора.

s1 = TestSuite.fromPackage('mytestpackage',HasSharedTestFixture(pf));

Создайте отфильтрованный тестовый набор, содержащий тесты, которые используют подавленный фиксатор предупреждений, swf, но не фиксатор пути, pf.

s2 = suite.selectIf(~HasSharedTestFixture(pf) & HasSharedTestFixture(swf));

Тестовый набор, s2, содержит только два тестовых элемента из AExampleTest. Тесты в BExampleTest исключены, потому что, в дополнение к подавленному фиксатору предупреждений, они используют фиксатор пути.

Создайте отфильтрованный набор, содержащий только тесты, которые используют фиксатор пути в другом месте.

pf2 = matlab.unittest.fixtures.PathFixture(fullfile(matlabroot));
s3 =  TestSuite.fromPackage('mytestpackage', HasSharedTestFixture(pf2))
s3 = 

  1×0 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

Tests Include:
   0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.

Тестовый набор не содержит тестовых элементов. Тесты в BExampleTest использовать общий фиксатор пути, но выбранный фиксатор пути, pf2, добавляет другую папку к пути, чтобы ее тесты не входили в набор.

Введенный в R2014a