matlab.unittest.plugins.DiagnosticsValidationPlugin class

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