exponenta event banner

sortByFixtures

Класс: matlab.unittest.StartSuite
Пакет: matlab.unittest

Переупорядочить набор тестов на основе общих приборов

Синтаксис

sortedSuite = sortByFixtures(suite)
[sortedSuite,I] = sortByFixtures(suite)

Описание

sortedSuite = sortByFixtures(suite) переупорядочивает набор тестов, чтобы уменьшить общую настройку приспособления и операции отрыва. Не полагайтесь на порядок элементов в sortedSuite как это может измениться в будущем выпуске.

[sortedSuite,I] = sortByFixtures(suite) также возвращает индекс сортировки I которая описывает расположение элементов suite в sortedSuite.

Входные аргументы

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

Набор тестов, указанный как matlab.unittest.Test массив.

Выходные аргументы

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

Упорядоченный набор тестов, возвращенный как matlab.unittest.Test массив. sortedSuite - перестановка проверочных элементов suite.

Индекс сортировки, возвращаемый как вектор, матрица или многомерный массив. I имеет тот же размер, что и suite и описывает расположение элементов suite в orderedSuite. В частности, sortedSuite = suite(I).

Примеры

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

Создайте три тестовых класса в текущей рабочей папке. Классы тестирования MyTestClassA и MyTestClassC использовать один и тот же общий прибор траектории.

classdef (SharedTestFixtures={ ...
        matlab.unittest.fixtures.PathFixture('offPathFolder')}) ...
        MyTestClassA < matlab.unittest.TestCase
    methods (Test)
        function test_A(testCase)
            % test content
        end
    end
end
classdef MyTestClassB < matlab.unittest.TestCase
    methods (Test)
        function test_B(testCase)
            % test content
        end
    end
end
classdef (SharedTestFixtures={ ...
        matlab.unittest.fixtures.PathFixture('offPathFolder')}) ...
        MyTestClassC < matlab.unittest.TestCase
    methods (Test)
        function test_C(testCase)
            % test content
        end
    end
end

Создайте набор тестов для каждого класса.

import matlab.unittest.TestSuite;
suiteA = TestSuite.fromClass(?MyTestClassA);
suiteB = TestSuite.fromClass(?MyTestClassB);
suiteC = TestSuite.fromClass(?MyTestClassC);

Соедините комплекты и просмотрите порядок тестовых элементов.

suite = [suiteA suiteB suiteC];
{suite.Name}'
ans =

  3×1 cell array

    {'MyTestClassA/test_A'}
    {'MyTestClassB/test_B'}
    {'MyTestClassC/test_C'}

Сортируйте комплект по общим приборам и просмотрите порядок тестовых элементов.

sortedSuite = sortByFixtures(suite);
{sortedSuite.Name}'
ans =

  3×1 cell array

    {'MyTestClassA/test_A'}
    {'MyTestClassC/test_C'}
    {'MyTestClassB/test_B'}

С момента проведения тестов в MyTestClassA и MyTestClassC имеют одно и то же общее тестовое приспособление, тестовые элементы переупорядочены так, чтобы они были смежны в комплекте.

Совет

При создании набора тестов с использованием одного вызова testsuite функция вместо нескольких вызовов метода matlab.unittest.TestSuite, комплект автоматически сортируется на основе общих приборов. Однако при добавлении, удалении или переупорядочивании элементов после первоначального создания набора вызовите sortByFixtures метод сортировки набора.

Представлен в R2018b