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