Main Content

matlab.unittest.plugins.TAPPlugin.producingVersion13

类: matlab.unittest.plugins.TAPPlugin
命名空间: matlab.unittest.plugins

为版本 13 TAP 格式构造 TAPPlugin

说明

示例

matlab.unittest.plugins.TAPPlugin.producingVersion13 创建一个可按 Test Anything Protocol (TAP) 版本 13 格式生成输出的插件。TAP 版本 13 输出将测试诊断信息包含在 YAML 块中。默认情况下,该插件使用 ToStandardOutput 流,并且输出会显示在屏幕上。在本例中,发送到屏幕的其他输出可使 TAP 流失效。

matlab.unittest.plugins.TAPPlugin.producingVersion13(stream) 将所有文本输出重定向到指定的输出流。例如,您可以将输出重定向到 ToFile 流。

matlab.unittest.plugins.TAPPlugin.producingVersion13(___,Name,Value) 创建一个插件,并通过一个或多个 Name,Value 对组参量指定其他选项。

输入参数

全部展开

插件要将文本输出定向到的位置,指定为 OutputStream 类的实例。默认情况下,插件使用 ToStandardOutput 流。

示例: stream = matlab.automation.streams.ToStandardOutput

示例: stream = matlab.automation.streams.ToFile('myFile.tap')

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: TAPPlugin.producingVersion13('LoggingLevel', Verbosity.Detailed) 创建一个插件,它包含在 Detailed 级别及更低级别记录的诊断信息。

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

数据类型: logical

要在测试报告中包含的已记录诊断的最大详细级别,指定为从 04 的整数标量、matlab.automation.Verbosity 枚举对象或枚举的文本表示。插件包括在指定级别及更低级别记录的诊断。

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

无信息

1Terse

最少的信息

2Concise

适中信息量

3Detailed

部分补充信息

4Verbose

大量补充信息

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

记录的诊断是您使用 log (TestCase)log (Fixture) 方法为测试框架提供的诊断。

示例: "LoggingLevel","detailed"

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

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

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

无信息

1Terse

最少的信息

2Concise

适中信息量

3Detailed

部分补充信息

4Verbose

大量补充信息

示例

全部展开

在您的工作文件夹的新文件中,创建一个包含以下测试类的 ExampleTest.m

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)  % Test fails
            testCase.verifyEqual(5,4,'Testing 5==4')
        end
        function testTwo(testCase)  % Test passes
            testCase.verifyEqual(5,5,'Testing 5==5')
        end
        function testThree(testCase)
            % test code
        end
    end
end

在命令提示符下,基于 ExampleTest 类创建测试套件。

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite
import matlab.unittest.plugins.TAPPlugin
import matlab.automation.streams.ToFile

suite = TestSuite.fromClass(?ExampleTest);

使用默认插件创建一个将输出显示到命令行窗口中的测试运行器。

runner = TestRunner.withTextOutput;

创建一个将输出发送到文件 MyTapOutput.tapTAPPlugin

tapFile = 'MyTAPOutput.tap';
plugin = TAPPlugin.producingVersion13(ToFile(tapFile));

将该插接添加到 TestRunner 并运行套件。

runner.addPlugin(plugin)
result = runner.run(suite);
Running ExampleTest

================================================================================
Verification failed in ExampleTest/testOne.
    ----------------
    Test Diagnostic:
    ----------------
    Testing 5==4
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> The numeric values are not equal using "isequaln".
    --> Failure table:
            Actual    Expected    Error    RelativeError
            ______    ________    _____    _____________
                                                        
              5          4          1          0.25     
    
    Actual Value:
         5
    Expected Value:
         4
    ------------------
    Stack Information:
    ------------------
    In C:\work\ExampleTest.m (ExampleTest.testOne) at 4
================================================================================
...
Done ExampleTest
__________

Failure Summary:

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

显示该插件创建的文件。

disp(fileread(tapFile))
TAP version 13
1..3
not ok 1 - ExampleTest/testOne
    ---
    Event:
        Event Name: 'VerificationFailed'
        Event Location: 'ExampleTest/testOne'
        Test Diagnostic: |
            Testing 5==4
        Framework Diagnostic: |
            verifyEqual failed.
            --> The numeric values are not equal using "isequaln".
            --> Failure table:
                    Actual    Expected    Error    RelativeError
                    ______    ________    _____    _____________
                                                                
                      5          4          1          0.25     
            
            Actual Value:
                 5
            Expected Value:
                 4
        Stack: |
            In C:\work\ExampleTest.m (ExampleTest.testOne) at 4
    ...
ok 2 - ExampleTest/testTwo
ok 3 - ExampleTest/testThree

可使用定向到标准输出的 TAPPlugin。不过,显示在标准输出中的任何其他文本(例如失败的测试信息)都会中断流,并可能使其失效。

版本历史记录

在 R2016b 中推出