matlab.unittest.plugins.DiagnosticsValidationPlugin class

Пакет: matlab.unittest.plugins

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

Описание

The DiagnosticsValidationPlugin создает плагин для проверки диагностического кода.

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

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

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

Конструкция

matlab.unittest.plugins.DiagnosticsValidationPlugin создает плагин для проверки диагностического кода.

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

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

stream

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

По умолчанию: ToStandardOutput

Копировать семантику

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

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

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