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

Пакет: matlab.unittest.plugins

Плагин, чтобы помочь подтвердить диагностический код

Описание

DiagnosticsValidationPlugin создает плагин, чтобы помочь подтвердить диагностический код.

Добавьте DiagnosticsValidationPlugin к TestRunner, чтобы подтвердить, что предоставленная пользователями диагностика выполняется правильно. Этот плагин полезен, потому что обычно тесты не сталкиваются с условиями отказа. Отказ может привести к неосуществленному диагностическому коду. Если программная ошибка существует в этом диагностическом коде, ошибка не очевидна, если тест не перестал работать. Однако в этой точке в процессе тестирования, диагностика для условия отказа потеряна из-за ошибки в диагностическом коде.

Используйте этот плагин, чтобы безусловно оценить диагностику, предоставленную тестовым средством записи, независимо от ли результаты испытаний в передаче или провальном условии. Этот подход помогает вам подтвердить, что весь диагностический код свободен от программных ошибок.

Диагностический анализ может уменьшить проведение испытаний и может привести к очень многословному тексту вывод. Знайте об этом влиянии перед использованием этого плагина для стандартного тестирования.

Конструкция

matlab.unittest.plugins. DiagnosticsValidationPlugin создает плагин, чтобы помочь подтвердить диагностический код.

(Поток) matlab.unittest.plugins. DiagnosticsValidationPlugin перенаправляет весь текст вывод к потоку вывода, потоку. Если вы не задаете поток вывода, плагин использует поток ToStandardOutput по умолчанию.

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

поток

Местоположение, где плагин направляет текст вывод, заданный как OutputStream.

Значение по умолчанию: ToStandardOutput

Примеры

свернуть все

В вашей рабочей папке создайте файл, ExampleTest.m, содержа следующий тестовый класс. В этом примере метод testThree имеет намеренную ошибку. Метод должен использовать указатель на функцию для функции dir как FunctionHandleDiagnostic, но dir написан c ошибкой.

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)
            % test code
        end
        function testTwo(testCase)
            % test code
        end
        function testThree(testCase)
            % The following should use @dir as a function handle,
            % but there is a typo
            testCase.verifyEqual('myfile','myfile', @dri)
        end
    end
end

Все тесты в результате ExampleTest.m в передающем условии, но в диагностике существует ошибка.

В командной строке создайте тестовый набор из класса ExampleTest.

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite
import matlab.unittest.plugins.DiagnosticsValidationPlugin

suite = TestSuite.fromClass(?ExampleTest);

Создайте исполнителя тестов, сконфигурированного с текстом вывод.

runner = TestRunner.withTextOutput;

Запущение тестов.

result1 = runner.run(suite);
Running ExampleTest
...
Done ExampleTest
__________

Никакой диагностический вывод не отображен, потому что все тесты передали. Среда тестирования не сталкивается с ошибкой в FunctionHandleDiagnostic testThree.

Добавьте DiagnosticValidationPlugin к бегуну и запустите тесты.

runner.addPlugin(DiagnosticsValidationPlugin)
result2 = runner.run(suite);
Running ExampleTest
..
------------------------------
Validation of Test Diagnostic:
------------------------------
Error occurred while capturing diagnostics:
Error using evalc
Undefined function or variable 'dri'.

Error in ExampleTest/testThree (line 12)
            testCase.verifyEqual('myfile','myfile', @dri);

.
Done ExampleTest
__________

Среда выполняет диагностику, обеспеченную FunctionHandleDiagnostic, даже при том, что ни один из тестовых сбоев. Без этого плагина среда тестирования только сталкивается с ошибкой, если тест перестал работать.

Была ли эта тема полезной?