本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

matlab.unittest.plugins.DiagnosticsOutputPlugin 类

包: matlab.unittest.plugins

用于将诊断信息定向到输出流的插件

说明

DiagnosticsOutputPlugin 类创建一个插件,用于将诊断信息定向到输出流。要配置测试框架输出的诊断类型和详细信息级别,请将此插件添加到 TestRunner 实例。

构造

matlab.unittest.plugins.DiagnosticsOutputPlugin 创建一个插件,用于将失败事件和在 Verbosity.Terse 级别记录的事件的诊断信息定向到 ToStandardOutput 流。

matlab.unittest.plugins.DiagnosticsOutputPlugin(stream) 将诊断信息重定向到指定的输出流。例如,您可以使用 ToFile 将输出重定向到创建的流。

matlab.unittest.plugins.DiagnosticsOutputPlugin(___,Name,Value) 创建一个插件,并通过一个或多个 Name,Value 对组参数指定其他选项。例如,DiagnosticsOutputPlugin('LoggingLevel',4,'IncludingPassingDiagnostics',true) 创建一个插件,显示在任何级别记录的诊断,并显示通过事件诊断信息。

输入参数

全部展开

输出位置,指定为 OutputStream 类的实例。该插件将诊断信息定向到指定位置。默认情况下,该插件使用 matlab.unittest.plugins.ToStandardOutput 流。

示例: matlab.unittest.plugins.ToFile('myFile.txt')

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: DiagnosticsOutputPlugin('IncludingPassingDiagnostics',true,'OutputDetail',4) 创建一个插件,其中包括通过事件诊断信息并在“详尽”详细信息级别显示诊断信息。

是否排除来自失败事件的诊断信息,指定为 falsetrue。默认情况下,该插件包含来自失败事件的诊断信息。

数据类型: logical

是否包含通过事件的诊断信息,指定为 falsetrue。默认情况下,该插件不包含来自通过事件的诊断信息。

数据类型: logical

插件实例包含的所记录诊断信息的最高级别,指定为介于 0 和 4 之间的整数值、matlab.unittest.Verbosity 枚举对象,或对应于预定义枚举成员名称之一的字符串标量或字符向量。该插件包含在此级别和更低级别记录的诊断信息。整数值对应于 matlab.unittest.Verbosity 枚举的成员。

数值表示枚举成员名称详细程度说明
0None

无信息

1Terse

最少的信息

2Concise

适中信息量

3Detailed

部分补充信息

4Verbose

大量补充信息

默认情况下,插件包含在 matlab.unittest.Verbosity.Terse 级别(级别 1)记录的诊断信息。要排除所记录的诊断信息,请将 LoggingLevel 指定为 Verbosity.None(级别 0)。

记录的诊断信息是您通过调用 loglog 方法提供给测试框架的诊断信息。

报告事件的详细信息级别,指定为介于 0 和 4 之间的整数值、matlab.unittest.Verbosity 枚举对象,或对应于预定义枚举成员名称之一的字符串标量或字符向量。整数值对应于 matlab.unittest.Verbosity 枚举的成员。

该插件使用 OutputDetail 指定的信息量来报告通过事件、失败事件和日志记录事件。默认情况下,该插件在 matlab.unittest.Verbosity.Detailed 级别(级别 3)记录事件。

数值表示枚举成员名称详细程度说明
0None

无信息

1Terse

最少的信息

2Concise

适中信息量

3Detailed

部分补充信息

4Verbose

大量补充信息

属性

全部展开

此属性为只读

表明是否排除失败事件的诊断信息的指示符,指定为 falsetruelogical 0 或 1)。默认情况下,ExcludeFailureDiagnosticsfalse,输出中包含来自失败事件的诊断信息。要从输出中排除失败事件的诊断信息,请在插件构造期间将 ExcludeFailureDiagnostics 指定为 true

此属性为只读

表明是否包含通过事件的诊断信息的指示符,指定为 falsetruelogical 0 或 1)。默认情况下,IncludePassingDiagnosticsfalse,即不在输出中包含通过事件的诊断信息。要在输出中包含通过事件的诊断信息,请在构造插件时将 IncludePassingDiagnostics 指定为 true

此属性为只读

插件包含的记录诊断信息的最高详细级别,以 matlab.unittest.Verbosity 枚举对象形式返回。该插件包含在此级别和更低级别记录的诊断信息。默认情况下,此属性值为 matlab.unittest.Verbosity.Terse。您可以在插件构造期间指定不同的日志记录级别。

记录的诊断信息是您通过调用 loglog 方法提供给测试框架的诊断信息。

此属性为只读

报告事件的详细信息级别,以 matlab.unittest.Verbosity 枚举对象形式返回。默认情况下,此属性值为 matlab.unittest.Verbosity.Detailed。您可以在插件构造期间指定不同的输出详细信息级别。

复制语义

句柄。要了解句柄类如何影响复制操作,请参阅复制对象

示例

全部折叠

创建文件 ExampleDiagOutputTest.m,其中包含以下测试类。

classdef ExampleDiagOutputTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)
            import matlab.unittest.Verbosity
            testCase.log(Verbosity.Detailed,'Testing failing event')
            testCase.verifyEqual(42,13,'42 == 13')
        end
        function testTwo(testCase)
            testCase.log(3,'Testing passing event')
            testCase.verifyTrue(true,'true is true')
        end
    end
end

根据 ExampleDiagOutputTest 类创建一个测试套件。创建一个不含任何插件的测试运行程序。

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite
import matlab.unittest.Verbosity
import matlab.unittest.plugins.DiagnosticsOutputPlugin

suite = TestSuite.fromClass(?ExampleDiagOutputTest);
runner = TestRunner.withNoPlugins();

创建一个默认 DiagnosticsOutputPlugin,将其添加到运行程序,然后运行测试。

plugin = DiagnosticsOutputPlugin;
runner.addPlugin(plugin);
result = runner.run(suite);
================================================================================
Verification failed in ExampleDiagOutputTest/testOne.

    ----------------
    Test Diagnostic:
    ----------------
    42 == 13

    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> The values are not equal using "isequaln".
    --> Failure table:
            Actual    Expected    Error     RelativeError  
            ______    ________    _____    ________________
        
              42         13        29      2.23076923076923
    
    Actual Value:
        42
    Expected Value:
        13

    ------------------
    Stack Information:
    ------------------
    In C:\work\ExampleDiagOutputTest.m (ExampleDiagOutputTest.testOne) at 5
================================================================================
Failure Summary:

     Name                           Failed  Incomplete  Reason(s)
    ============================================================================
     ExampleDiagOutputTest/testOne    X                 Failed by verification.

创建另一个测试运行程序和一个 DiagnosticsOutputPlugin,后者在 Terse 级别显示诊断信息(包括通过诊断信息),并显示在 Detailed 级别或更低级别记录的诊断信息。将其添加到运行程序并重新运行测试。

runner = TestRunner.withNoPlugins();
plugin = DiagnosticsOutputPlugin('OutputDetail',Verbosity.Terse, ...
    'LoggingLevel',3,'IncludingPassingDiagnostics',true);
runner.addPlugin(plugin);
result = runner.run(suite);
[Detailed] Diagnostic logged (2018-04-13 13:47:34): Testing failing event

FAIL: ExampleDiagOutputTest/testOne in ExampleDiagOutputTest.testOne at 6 :: verifyEqual failed.

[Detailed] Diagnostic logged (2018-04-13 13:47:34): Testing passing event

PASS: ExampleDiagOutputTest/testTwo in ExampleDiagOutputTest.testTwo at 10 :: verifyTrue passed.

在 R2018b 中推出