exponenta event banner

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

Пакет: matlab.unittest.selectors

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

Описание

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