exponenta event banner

matlab.unittest.plugins.StartRunProgressPlugin класс

Пакет: matlab.unittest.plugins

Подключаемый модуль, сообщающий о ходе выполнения теста

Описание

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

Строительство

matlab.unittest.plugins.TestRunProgressPlugin.withVerbosity(v) создает TestRunProgressPlugin для указанной детализации.

matlab.unittest.plugins.TestRunProgressPlugin.withVerbosity(v,stream) перенаправляет вывод текста в выходной поток.

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

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

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

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

Нет информации

1Terse

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

2Concise

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

3Detailed

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

4Verbose

Много дополнительной информации

Расположение, в котором плагин направляет вывод текста, указанное как OutputStream экземпляр. По умолчанию плагин использует OutputStream подкласс ToStandardOutput в качестве потока.

Копирование семантики

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте функциональный тест с именем cylinderPlotTest в файле в рабочей папке.

function tests = cylinderPlotTest
tests = functiontests(localfunctions);
end
 
function setupOnce(testCase)
testCase.TestData.Figure = figure;
addTeardown(testCase,@close,testCase.TestData.Figure)
end
 
function setup(testCase)
testCase.TestData.Axes = axes('Parent',testCase.TestData.Figure);
addTeardown(testCase,@clf,testCase.TestData.Figure)
cylinder(testCase.TestData.Axes,10)
end
 
function testXLim(testCase) 
xlim = testCase.TestData.Axes.XLim;
verifyLessThanOrEqual(testCase,xlim(1),-10,'Minimum x-limit too large')
verifyGreaterThanOrEqual(testCase,xlim(2),10,'Maximum x-limit too small')
end

function zdataTest(testCase)
s = findobj(testCase.TestData.Axes,'Type','surface');
verifyEqual(testCase,min(s.ZData(:)),0,'Min cylinder value is incorrect')
verifyEqual(testCase,max(s.ZData(:)),1,'Max cylinder value is incorrect')
end

В командной строке запустите тест.

results = run(cylinderPlotTest);
Running cylinderPlotTest
..
Done cylinderPlotTest
__________

По умолчанию тестовый питатель использует уровень детализации 2.

Создайте тестовый питатель, чтобы сообщить о диагностике на уровне 1, и повторно запустите тест.

import matlab.unittest.TestRunner
import matlab.unittest.plugins.TestRunProgressPlugin

runner = TestRunner.withNoPlugins;
p = TestRunProgressPlugin.withVerbosity(1);
runner.addPlugin(p);

results = runner.run(cylinderPlotTest);
..

Создайте тестовый питатель, чтобы сообщить о диагностике на уровне 4, и повторно запустите тест.

runner = TestRunner.withNoPlugins;
p = TestRunProgressPlugin.withVerbosity(4);
runner.addPlugin(p);

results = runner.run(cylinderPlotTest);
 Running cylinderPlotTest
  Setting up cylinderPlotTest
    Evaluating TestClassSetup: setupOnce
  Done setting up cylinderPlotTest in 0.067649 seconds
   Running cylinderPlotTest/testXLim
    Evaluating TestMethodSetup: setup
    Evaluating Test: testXLim
    Evaluating TestMethodTeardown: teardown
    Evaluating addTeardown function: clf
   Done cylinderPlotTest/testXLim in 0.053834 seconds
   Running cylinderPlotTest/zdataTest
    Evaluating TestMethodSetup: setup
    Evaluating Test: zdataTest
    Evaluating TestMethodTeardown: teardown
    Evaluating addTeardown function: clf
   Done cylinderPlotTest/zdataTest in 0.037715 seconds
  Tearing down cylinderPlotTest
    Evaluating TestClassTeardown: teardownOnce
    Evaluating addTeardown function: close
  Done tearing down cylinderPlotTest in 0.022783 seconds
 Done cylinderPlotTest in 0.18198 seconds
__________

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

classdef ExampleProgressTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)  % Test fails
            testCase.verifyEqual(5,4)
        end
        function testTwo(testCase)  % Test passes
            testCase.verifyEqual(5,5)
        end
    end
end

В командной строке создайте набор тестов и питатель на уровне детализации 3, а затем запустите тест.

import matlab.unittest.TestSuite
import matlab.unittest.TestRunner
import matlab.unittest.plugins.TestRunProgressPlugin

suite = TestSuite.fromClass(?ExampleProgressTest);

runner = TestRunner.withNoPlugins;
p = TestRunProgressPlugin.withVerbosity(3);
runner.addPlugin(p);
results = runner.run(suite);
 Running ExampleProgressTest
  Setting up ExampleProgressTest
  Done setting up ExampleProgressTest in 0 seconds
   Running ExampleProgressTest/testOne
   Done ExampleProgressTest/testOne in 0.0049988 seconds
   Running ExampleProgressTest/testTwo
   Done ExampleProgressTest/testTwo in 0.0044541 seconds
  Tearing down ExampleProgressTest
  Done tearing down ExampleProgressTest in 0 seconds
 Done ExampleProgressTest in 0.0094529 seconds
__________

Создание нового подключаемого модуля для направления выходных данных в файл с именем myOutput.logи повторно запустите тесты.

import matlab.unittest.plugins.ToFile
outFile = 'myOutput.log';

runner = TestRunner.withNoPlugins;
p = TestRunProgressPlugin.withVerbosity(3,ToFile(outFile));
runner.addPlugin(p);

results = runner.run(suite);

Просмотрите содержимое файла, созданного плагином.

disp(fileread(outFile))
 Running ExampleProgressTest
  Setting up ExampleProgressTest
  Done setting up ExampleProgressTest in 0 seconds
   Running ExampleProgressTest/testOne
   Done ExampleProgressTest/testOne in 0.0050172 seconds
   Running ExampleProgressTest/testTwo
   Done ExampleProgressTest/testTwo in 0.0049449 seconds
  Tearing down ExampleProgressTest
  Done tearing down ExampleProgressTest in 0 seconds
 Done ExampleProgressTest in 0.009962 seconds
__________
Представлен в R2014b