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

Пакет: matlab.unittest.selectors

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

Описание

Селектор HasSharedTestFixture фильтрует элементы массива TestSuite на основе разделяемых испытательных стендов.

Конструкция

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

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

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

Разделяемый испытательный стенд, заданный как экземпляр matlab.unittest.fixtures.Fixture. Элемент массива TestSuite должен использовать разделяемый текстовый фиксатор, f, чтобы быть выбранным для TestSuite.

Свойства

ExpectedFixture

Разделяемый испытательный стенд, который элемент массива TestSuite должен использовать, чтобы быть выбранным для TestSuite. Свойство ExpectedFixture задано как matlab.unittest.fixtures.Fixture во входном параметре, f.

Примеры

свернуть все

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

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

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.m. Этот класс содержит один тест, который использует разделяемый фиксатор пути и отключивший предупреждения фиксатор.

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.m, поскольку тест в том классе использует разделяемый испытательный стенд, pf.

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

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

Создайте комплект отфильтрованного теста, который содержит тесты, которые используют отключивший предупреждения фиксатор, swf, но не фиксатор пути, pf.

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

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

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

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.m используют разделяемый фиксатор пути, но фиксатор выделенного контура, pf2, добавляет различную папку в путь, таким образом, его тесты не включены в комплект.

Введенный в R2014a