matlab.unittest.plugins. Класс TestRunProgressPlugin

Пакет: matlab.unittest.plugins

Плагин, который сообщает о прогрессе тестового прогона

Описание

Класс TestRunProgressPlugin создает плагин, который сообщает относительно прогресса тестового прогона.

Конструкция

matlab.unittest.plugins.TestRunProgressPlugin.withVerbosity(v) создает TestRunProgressPlugin для заданного многословия.

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

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

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

Уровень многословия, заданный как целочисленное значение между 0 и 4, объект перечисления 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