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

Пакет: matlab.unittest.plugins

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

Описание

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

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

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

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

Конструкция

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

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

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

stream

Местоположение, где плагин направляет вывод текста, заданный как 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, даже при том, что ни один из тестовых сбоев. Без этого плагина среда тестирования только сталкивается с ошибкой, если тест перестал работать.