sortByFixtures

Класс: matlab.unittest.
Пакет: 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