matlab.unittest.selectors.HasSharedTestFixture class

Пакет: matlab.unittest.selectors

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

Описание

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

Конструкция

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

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

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

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

Свойства

ExpectedFixture

Разделяемый испытательный стенд, заданный как matlab.unittest.fixtures.Fixture экземпляр во входном параметре, f. 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