Main Content

matlab.unittest.plugins.DiagnosticsValidationPlugin 类

命名空间: matlab.unittest.plugins
超类: matlab.unittest.plugins.TestRunnerPlugin, matlab.unittest.plugins.Parallelizable

帮助验证诊断代码的插件

描述

matlab.unittest.plugins.DiagnosticsValidationPlugin 类提供一个插件来帮助验证诊断代码。要确认用户提供的诊断正确执行,请向测试运行器添加一个 DiagnosticsValidationPlugin 实例。

DiagnosticsValidationPlugin 是有用的,因为测试不一定会遇到失败条件。如果诊断代码中存在编程错误,则除非测试失败,否则该错误可能不会显现出来。插件无条件地评估诊断,不管测试是通过还是失败,并帮助您确认诊断代码没有编程错误。

matlab.unittest.plugins.DiagnosticsValidationPlugin 类是一个 handle 类。

创建对象

描述

示例

plugin = matlab.unittest.plugins.DiagnosticsValidationPlugin 创建插件以帮助验证诊断代码。插件将其文本输出定向到屏幕。

plugin = matlab.unittest.plugins.DiagnosticsValidationPlugin(stream) 创建一个将数据写入指定输出流的插件。

输入参量

全部展开

插件定向文本输出的位置,指定为 matlab.automation.streams.OutputStream 对象。默认情况下,插件将其输出定向到屏幕。

示例

全部折叠

使用 DiagnosticsValidationPlugin 类验证诊断代码。

在当前文件夹内一个名为 ExampleTest.m 的文件中创建 ExampleTest 类。尽管测试类中的所有测试都通过,但 testThree 方法在提供的诊断中包含故意放置的错误。

classdef ExampleTest < matlab.unittest.TestCase
    methods (Test)
        function testOne(~)
            % Test code
        end

        function testTwo(~)
            % Test code
        end
        
        function testThree(testCase)
            % This test should use @dir as a function handle,
            % but there is a typo
            testCase.verifyEqual("myFile","myFile",@dri)
        end
    end
end

导入 DiagnosticsValidationPlugin 类。

import matlab.unittest.plugins.DiagnosticsValidationPlugin

根据 ExampleTest 类创建一个测试套件。

suite = testsuite("ExampleTest");

创建一个默认测试运行器,并使用它来运行测试。测试框架没有遇到 testThree 的诊断代码中的 Bug,因为测试通过。

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

现在,向测试运行器添加一个 DiagnosticsValidationPlugin 实例并运行测试。框架执行由函数句柄指定的诊断代码,即使 testThree 通过并遇到 Bug 也是如此。

runner.addPlugin(DiagnosticsValidationPlugin)
results2 = runner.run(suite);
Running ExampleTest
..
------------------------------
Validation of Test Diagnostic:
------------------------------
Error occurred while capturing diagnostics:
    Error using evalc
    Unrecognized function or variable 'dri'.
    
    Error in ExampleTest/testThree (line 14)
                testCase.verifyEqual("myFile","myFile",@dri)
.
Done ExampleTest
__________

提示

  • 诊断分析会降低测试性能,并生成详尽的文本输出。运行测试时,请在使用插件之前考虑这些因素。

版本历史记录

在 R2013a 中推出