Пакет: matlab.unittest.plugins
Плагин, который сообщает о прогрессе тестового прогона
TestRunProgressPlugin
класс создает плагин, который сообщает относительно прогресса тестового прогона.
matlab.unittest.plugins.TestRunProgressPlugin.withVerbosity(
создает v
)TestRunProgressPlugin
для заданного многословия.
matlab.unittest.plugins.TestRunProgressPlugin.withVerbosity(
перенаправляет вывод текста к потоку вывода.v
,stream
)
v
— Уровень многословия
| 1
| 2
| 3
| 4
| matlab.unittest.Verbosity
перечисление | имя перечисления как строка или символьный векторУровень многословия в виде целочисленного значения между 0 и 4, matlab.unittest.Verbosity
объект перечисления, или строковый скаляр или вектор символов, соответствующий одному из предопределенных имен элемента перечисления. Целочисленные значения соответствуют членам matlab.unittest.Verbosity
перечисление.
Числовое представление | Имя элемента перечисления | Описание многословия |
---|---|---|
0
| None | Никакая информация |
1
| Terse | Минимальная информация |
2
| Concise | Умеренный объем информации |
3
| Detailed | Некоторая дополнительная информация |
4
| Verbose | Большая дополнительная информация |
stream
— Местоположение, где плагин направляет вывод текстаToStandardOutput
экземпляр (значение по умолчанию) | OutputStream
экземплярМестоположение, где плагин направляет вывод текста в виде OutputStream
экземпляр. По умолчанию плагин использует OutputStream
разделите на подклассы ToStandardOutput
как поток.
Указатель. Чтобы узнать, как классы Handle влияют на операции копирования, см. раздел "Копирование объектов".
Создайте функциональный тест под названием 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 __________
matlab.unittest.TestRunner
| matlab.unittest.plugins.TestRunnerPlugin
| matlab.unittest.plugins.OutputStream
| matlab.unittest.plugins.ToStandardOutput
| matlab.unittest.Verbosity
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.