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