matlab.unittest. Класс TestRunner

Пакет: matlab.unittest

Класс для того, чтобы запустить тесты в среде matlab.unittest

Описание

Класс matlab.unittest.TestRunner является основным API, используемым, чтобы запустить комплект тестов в среде matlab.unittest. Это запускается и работает с массивами TestSuite. Используйте этот класс, чтобы настроить запускающие тесты.

Класс TestRunner является запечатанным классом; вы не можете вывести классы от класса TestRunner.

Конструкция

Чтобы создать простой, тихий объект TestRunner, вызовите статический метод withNoPlugins.

runner = matlab.unittest.TestRunner.withNoPlugins

Чтобы создать объект TestRunner запустить тесты из Командного окна MATLAB®, вызовите статический метод withTextOutput.

runner = matlab.unittest.TestRunner.withTextOutput

Чтобы создать индивидуально настраиваемый объект TestRunner, вызовите метод addPlugin.

runner = TestRunner.withNoPlugins;
runner.addPlugin(SomePlugin())

Свойства

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

Корневая папка, где артефакты тестового прогона хранятся, заданные как скаляр строки или вектор символов. По умолчанию значение ArtifactsRootFolder является значением от string(tempdir), но можно установить его на любую перезаписываемую папку.

Любые артефакты, произведенные во время тестового прогона, хранятся в подпапке в ArtifactsRootFolder. Подымя папки является уникальным идентификатором, сопоставленным с определенным тестовым прогоном. MATLAB создает подпапку, только если тестовый прогон производит артефакты.

Например, примите, что ArtifactsRootFolder установлен в "C:\Temp", и автоматически сгенерированным идентификатором тестового прогона является "1231df38-7515-4dbe-a869-c3d9f885f379". Если тестовый прогон производит артефакт, "artifact.txt", артефакт хранится как "C:\Temp\1231df38-7515-4dbe-a869-c3d9f885f379\artifact.txt".

Фиксаторы, которые настраиваются вне исполнителя тестов, задали как скалярный или вектор - строка из экземпляров matlab.unittest.fixtures.Fixture. Используйте это свойство указать, что экологическая настройка выполняется вручную вместо автоматически во время настройки фиксатора и отключения.

Исполнитель тестов рассматривает эти фиксаторы, как уже настроено и никогда не пытается настроить или разъединить любые фиксаторы, заданные свойством PrebuiltFixtures. Если тестовый набор требует разделяемого испытательного стенда, и тот испытательный стенд задан как предварительно созданный фиксатор, исполнитель тестов не выполняет настроенный или разъединяет действия.

Примечание

Исполнитель тестов использует предварительно созданный фиксатор, только если он задан как свойство PrebuiltFixtures и перечислен как SharedTestFixture в тестовом определении класса. Исполнитель тестов не использует предварительно созданный фиксатор, если фиксатор указан с помощью метода TestCase.applyFixture.

Методы

addPluginДобавьте плагин в объект TestRunner
запущенныйЗапустите все тесты в массиве TestSuite
runInParallelЗапустите все тесты в массиве TestSuite параллельно
withNoPluginsСоздайте самого простого возможного бегуна
withTextOutputСоздайте объект TestRunner для командного окна вывод

Примеры

свернуть все

Добавьте классы matlab.unittest в текущий список импорта.

import matlab.unittest.TestRunner;
import matlab.unittest.TestSuite;

Создайте массив TestSuite.

suite = TestSuite.fromClass(?mypackage.MyTestClass);

Создайте объект TestRunner и запустите комплект.

runner = TestRunner.withTextOutput;
result = run(runner,suite);

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

Создайте тестовый класс в файле в вашей рабочей папке. Тестовый класс использует PathFixture в качестве разделяемого испытательного стенда. Этот пример принимает, что подпапка, helperFiles, существует в вашей рабочей папке.

classdef (SharedTestFixtures={ ...
        matlab.unittest.fixtures.PathFixture('helperFiles')}) ...
        SampleTest < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            f = testCase.getSharedTestFixtures;
            
            import matlab.unittest.constraints.ContainsSubstring
            testCase.assertThat(path,ContainsSubstring(f.Folder))
        end
    end
end

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

import matlab.unittest.TestRunner;
import matlab.unittest.TestSuite;

suite = TestSuite.fromClass(?SampleTest);
runner = TestRunner.withTextOutput;

Запустите тесты с помощью разделяемого испытательного стенда. В этом случае фиксатор не предварительно создается.

runner.run(suite);
Setting up PathFixture
Done setting up PathFixture: Added 'C:\Work\helperFiles' to the path.
__________

Running SampleTest
.
Done SampleTest
__________

Tearing down PathFixture
Done tearing down PathFixture: Restored the path to its original state.
__________

Исполнитель тестов настраивает и разъединяет разделяемый испытательный стенд.

Создайте экземпляр фиксатора и добавьте его в исполнителя тестов.

f = matlab.unittest.fixtures.PathFixture('helperFiles');
runner.PrebuiltFixtures = f;

Вручную добавьте папку 'helperFiles' в свой путь. PathFixture добавляет заданную папку в ваш путь, и тесты полагаются на это действие настройки. Однако, поскольку фиксатор задан, как предварительно создано, исполнитель тестов не выполняет настроенный или разъединяет действия, и необходимо выполнить их вручную. В этом случае, если вы вручную не добавляете его в свой путь, тестовые сбои.

p = fullfile(pwd,'helperFiles');
oldPath = addpath(p);

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

runner.run(suite);
Running SampleTest
.
Done SampleTest
__________

Исполнитель тестов принимает, что фиксатор предварительно создается и не настраивает его или разъединяет его.

Вручную сбросьте свой путь.

path(oldPath)

Введенный в R2013a