runtests

Запустите набор тестов

Синтаксис

results = runtests
results = runtests(tests)
results = runtests(tests,Name,Value)

Описание

results = runtests запускает все тесты в вашей текущей папке и возвращает результаты как объект TestResult.

пример

results = runtests(tests) запускает заданный набор тестов.

пример

results = runtests(tests,Name,Value) запускает набор тестов с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

Создайте папку myExample в своей текущей рабочей папке и изменение в ту папку.

В папке myExample создайте тестовый скрипт, typeTest.m.

%% Test double class
exp = 'double';
act = ones;
assert(isa(act,exp))

%% Test single class
exp = 'single';
act = ones('single');
assert(isa(act,exp))

%% Test uint16 class
exp = 'uint16';
act = ones('uint16');
assert(isa(act,exp))

В папке myExample создайте тестовый скрипт, sizeValueTest.m.

%% Test size
exp = [7 13];
act = ones([7 13]);
assert(isequal(size(act),exp))

%% Test values
act = ones(42);
assert(unique(act) == 1)

Запустите все тесты в текущей папке.

runtests
Running sizeValueTest
..
Done sizeValueTest
__________

Running typeTest
...
Done typeTest
__________


ans = 

  1x5 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   5 Passed, 0 Failed, 0 Incomplete.
   0.038077 seconds testing time.

MATLAB® запустил 5 тестов. Существует 2 проходящих теста от sizeValueTest и 3 проходящих теста от typeTest.

Создайте тестовый файл, показанный ниже, и сохраните его как runtestsExampleTest.m на вашем пути MATLAB.

function tests = runtestsExampleTest
tests = functiontests(localfunctions);

function testFunctionOne(testCase)

Запущение тестов.

results = runtests('runtestsExampleTest.m');
Running runtestsExampleTest
.
Done runtestsExampleTest
__________

Если это не существует, создайте тестовый файл, runtestsExampleTest.m, в примере выше.

Создайте подпапку, tmpTest, и, в той папке, создайте следующий файл runtestsExampleSubFolderTest.m.

function tests = runtestsExampleSubFolderTest
tests = functiontests(localfunctions);

function testFunctionTwo(testCase)

Запустите тесты от папки выше tmpTest установкой 'IncludeSubfolders' к истине.

results = runtests(pwd,'IncludeSubfolders',true);
Running runtestsExampleTest
.
Done runtestsExampleTest
__________

Running runtestsExampleSubFolderTest
.
Done runtestsExampleSubFolderTest
__________

runtests запустил тесты и в текущей папке и в подпапке.

Если вы не задаете свойство 'IncludeSubfolders' для функции runtests, оно не запускает тест в подпапке.

results = runtests(pwd);
Running runtestsExampleTest
.
Done runtestsExampleTest
__________

Создайте следующий тестовый файл и сохраните его как runInParallelTest.m на вашем пути MATLAB®.

function tests = runInParallelTest
tests = functiontests(localfunctions);

function testA(testCase)
verifyEqual(testCase,5,5);

function testB(testCase)
verifyTrue(testCase,logical(1));

function testC(testCase)
verifySubstring(testCase,'SomeLongText','Long');

function testD(testCase)
verifySize(testCase,ones(2,5,3),[2 5 3]);

function testE(testCase)
verifyGreaterThan(testCase,3,2);

function testF(testCase)
verifyEmpty(testCase,{},'Cell array is not empty.');

function testG(testCase)
verifyMatches(testCase,'Some Text','Some [Tt]ext');

Запустите тесты параллельно. Запущение тестов параллельно требует Parallel Computing Toolbox™. Среда тестирования может отличаться порядок и количество групп или который тестирует его, включает в каждую группу.

results = runtests('runInParallelTest','UseParallel',true);
Split tests into 7 groups and running them on 4 workers.
----------------
Finished Group 2
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 3
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 1
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 4
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 6
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 5
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 7
----------------
Running runInParallelTest
.
Done runInParallelTest
__________

В вашей рабочей папке создайте testZeros.m. Этот класс содержит четыре метода тестирования.

classdef testZeros < matlab.unittest.TestCase
    properties (TestParameter)
        type = {'single','double','uint16'};
        outSize = struct('s2d',[3 3], 's3d',[2 5 4]);
    end
    
    methods (Test)
        function testClass(testCase, type, outSize)
            testCase.verifyClass(zeros(outSize,type), type);
        end
        
        function testSize(testCase, outSize)
            testCase.verifySize(zeros(outSize), outSize);
        end
        
        function testDefaultClass(testCase)
            testCase.verifyClass(zeros, 'double');
        end
        function testDefaultSize(testCase)
            testCase.verifySize(zeros, [1 1]);
        end
        
        function testDefaultValue(testCase)
            testCase.verifyEqual(zeros,0);
        end
    end
end

Полный тестовый набор имеет 11 тестовых элементов: 6 из метода testClass, 2 из метода testSize, и 1 каждый от testDefaultClass, testDefaultSize и методов testDefaultValue.

В командной строке запустите всю параметризацию для метода testSize.

runtests('testZeros/testSize')
Running testZeros
..
Done testZeros
__________


ans = 

  1x2 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   2 Passed, 0 Failed, 0 Incomplete.
   0.029617 seconds testing time.

Функция runtests выполнила два параметризованных теста из метода testSize. Также можно задать имя процедуры тестирования с runtests('testZeros','ProcedureName','testSize').

Запустите тестовые элементы, которые используют свойство параметра outSize.

runtests('testZeros','ParameterProperty','outSize')
Running testZeros
........
Done testZeros
__________


ans = 

  1x8 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   8 Passed, 0 Failed, 0 Incomplete.
   0.058445 seconds testing time.

Функция runtests выполнила восемь тестов, которые используют свойство параметра outSize: шесть из метода testClass и два из метода testSize.

Запустите тестовые элементы, которые используют название параметра single.

runtests('testZeros','ParameterName','single')
Running testZeros
..
Done testZeros
__________


ans = 

  1x2 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   2 Passed, 0 Failed, 0 Incomplete.
   0.008644 seconds testing time.

Функция runtests выполнила два теста из метода testClass, которые используют название параметра outSize.

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

свернуть все

Комплект тестов, заданных как вектор символов или массив ячеек из символьных векторов. Каждый вектор символов в массиве ячеек может содержать имя тестового файла, тестового класса, имени элемента тестового набора, пакет, содержащий ваши тестовые классы, папка, содержащая ваши тестовые файлы или папку проекта, содержащую тестовые файлы.

Пример: runtests('ATestFile.m')

Пример: runtests('ATestFile/aTest')

Пример: runtests('mypackage.MyTestClass')

Пример: runtests(pwd)

Пример: runtests({'mypackage.MyTestClass','ATestFile.m',pwd,'mypackage.subpackage'})

Пример: runtests('C:/projects/project1/')

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: runtests(tests,'Name','productA_*') запускает тестовые элементы с именем, которое запускается с 'productA_'.

Имя основной папки, которая содержит файл, задающий тестовый класс, функцию или скрипт, заданный как вектор символов. Этот аргумент фильтрует элементы массива TestSuite. Для тестового элемента, который будет включен в комплект, тестовый элемент должен содержаться в заданной основной папке. Используйте символ подстановки *, чтобы соответствовать любому количеству символов. Используйте символ вопросительного знака ?, чтобы совпадать с отдельным символом. Для тестовых файлов, заданных в пакетах, основная папка является родительским элементом папки пакета верхнего уровня.

Индикатор, чтобы применить возможности отладки при выполнении tests, заданного как false или true (0 или 1). Например, если с непройденным тестом сталкиваются, среда приостанавливает выполнение теста, чтобы ввести режим отладки.

Типы данных: логический

Индикатор, чтобы запустить тесты в подпапках, заданных как false или true (0 или 1). По умолчанию среда запускает тесты в заданных папках, но не в их подпапках.

Типы данных: логический

Индикатор, чтобы запустить тесты в подпакетах, заданных как false или true (0 или 1). По умолчанию среда запускает тесты в заданных пакетах, но не в их подпакетах.

Типы данных: логический

Индикатор, чтобы включать тесты от ссылок на проекты, заданных как логический false или true. Для получения дополнительной информации о ссылках на проекты смотрите, Разбивают на компоненты Крупные проекты.

Типы данных: логический

Максимальный уровень многословия для регистрируемой диагностики, включенной для тестового прогона, заданного как целочисленное значение от 0 до 4, или как объект перечисления matlab.unittest.Verbosity. Функция runtests включает диагностику, которая регистрируется на этом уровне и ниже. Целочисленные значения соответствуют участникам перечисления matlab.unittest.Verbosity.

runtests по умолчанию включает диагностику, регистрируемую в уровень matlab.unittest.Verbosity.Terse (уровень 1). Чтобы исключить регистрируемую диагностику, задайте LoggingLevel как Verbosity.None (уровень 0).

Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов метода Fixture.log или TestCase.log.

Числовое представлениеИмя элемента перечисленияОписание многословия
0None

Никакая информация

1Terse

Минимальная информация

2Concise

Умеренный объем информации

3Detailed

Некоторая дополнительная информация

4Verbose

Большая дополнительная информация

Отобразите уровень для деталей события, заданных как целочисленное значение от 0 до 4, или как объект перечисления matlab.unittest.Verbosity. Целочисленные значения соответствуют участникам перечисления matlab.unittest.Verbosity.

Сбой отображений функции runtests и регистрируемые события с суммой детали заданы OutputDetail. По умолчанию runtests отображает события на уровне matlab.unittest.Verbosity.Detailed (уровень 3).

Числовое представлениеИмя элемента перечисленияОписание многословия
0None

Никакая информация

1Terse

Минимальная информация

2Concise

Умеренный объем информации

3Detailed

Некоторая дополнительная информация

4Verbose

Большая дополнительная информация

Имя элемента комплекта, указанного как вектор символов. Этот аргумент фильтрует элементы массива TestSuite. Для среды тестирования, чтобы запустить тест, свойство Name тестового элемента должно совпадать с указанным именем. Используйте символ подстановки *, чтобы соответствовать любому количеству символов. Используйте символ вопросительного знака, ?, чтобы совпадать с отдельным символом.

Имя параметра используется элементом тестового набора, указанным как вектор символов. Этот аргумент фильтрует элементы массива TestSuite. Используйте символ подстановки *, чтобы соответствовать любому количеству символов. Используйте символ вопросительного знака ?, чтобы совпадать с отдельным символом.

Имя свойства параметризации используется элементом тестового набора, указанным как вектор символов. Этот аргумент фильтрует элементы массива TestSuite. Используйте символ подстановки *, чтобы соответствовать любому количеству символов. Используйте символ вопросительного знака ?, чтобы соответствовать к отдельному символу.

Имя процедуры тестирования, заданной как вектор символов. Этот аргумент фильтрует элементы массива TestSuite. Используйте символ подстановки *, чтобы соответствовать любому количеству символов. Используйте символ вопросительного знака, ?, чтобы соответствовать точно к одному символу.

В основанном на классах тесте ProcedureName является именем метода тестирования. В функциональном тест это - имя локальной функции, которая содержит тест. В тесте на основе скриптов это - имя, сгенерированное из заголовка экспериментального участка. В отличие от Name, имя процедуры тестирования не включает класса или имени пакета или информации о параметризации.

Путь к исходному коду, чтобы включать в отчет покрытия кода, заданный как вектор символов, массив строк или массив ячеек из символьных векторов. Используя эту опцию с runtests запускает заданные тесты и представляет отчет покрытия кода для заданных файлов кода. Отчет показывает, какие строки в исходном коде выполнялись тестами.

Исходный код может быть абсолютным или относительным путем к одной или нескольким папкам или к файлам, которые имеют расширение .mlx или .m.

Пример: runtests(tests,'ReportCoverageFor','mySource.m')

Типы данных: char | string | cell

Индикатор, чтобы применить строгие проверки при выполнении tests, заданного как false или true (0 или 1). Например, среда генерирует отказ проверки, если тест выдает предупреждение.

Типы данных: логический

Имя класса, который тестовый класс выводит от, заданный как скаляр строки или вектор символов. Этот аргумент фильтрует элементы массива TestSuite.

Имя тестового тега элементов, заданного как вектор символов или скаляр строки. Этот аргумент фильтрует элементы массива TestSuite. Используйте символ подстановки *, чтобы соответствовать любому количеству символов. Используйте символ вопросительного знака ?, чтобы совпадать с отдельным символом.

Индикатор, чтобы запустить тесты параллельно, заданный как false или true (0 или 1). runtests по умолчанию запускает тесты в сериале. Если вы устанавливаете UseParallel на true, функция runtests делит тестовый набор на отдельные группы и запускает группы параллельно если:

  • Parallel Computing Toolbox установлен.

  • Открытый параллельный пул существует, или автоматическое создание пула включено в Параллельных Настройках.

В противном случае runtests запускает тесты в сериале независимо от значения для UseParallel.

Примечание

Запущение тестов параллельно требует Parallel Computing Toolbox. Среда тестирования может отличаться порядок и количество групп или который тестирует его, включает в каждую группу.

Тестирование параллельно не может быть совместимо с другими опциями. Например, тестирование происходит в сериале, если 'UseParallel' и 'Debug' оба установлены в истину.

Типы данных: логический

Введенный в R2013b