Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

matlab.unittest.plugins.TestReportPlugin.producingHTML

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

创建生成 HTML 测试报告的插件

说明

plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML 创建一个插件,用于在临时文件夹中生成一个多文件 HTML 测试报告。该插件将默认文件名 index.html 用于临时文件夹中报告的主文件。如果您使用此插件重新运行测试套件,则 MATLAB® 会覆盖文件夹中的内容。

此语法等效于 plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML(tempname)

plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML(fileOrFolder) 将报告保存到指定的位置:

  • 如果您指定一个文件,插件会生成单文件报告,并将其保存为指定的文件。在单文件 HTML 测试报告中,报告的所有内容(如文本和图像)都包含在单个 HTML 文件中。 (自 R2024a 起)

  • 如果您指定一个文件夹,插件会生成一个多文件报告,并将其保存到指定的文件夹中。

示例

plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML(___,Name,Value) 支持上述语法中的任何输入参量组合,且可使用一个或多个名称-值参量指定选项。例如,plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML("MainFile","main.html") 创建一个生成多文件测试报告的插件,其主文件是 main.html,而不是 index.html

输入参数

全部展开

单文件报告的测试报告文件或多文件报告的测试报告文件夹的名称,指定为字符串标量或字符向量。该值可以是相对于当前文件夹的路径,也可以是绝对路径。

示例: "myTestReport.html"

示例: "C:\work\myTestReport"

名称-值参数

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

示例: plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML(MainFile="main.html")

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

示例: plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML("MainFile","main.html")

多文件测试报告的主 HTML 文件的名称,指定为以 .html.htm 结尾的字符串标量或字符向量。如果不指定 MainFile,则插件将多文件测试报告的主文件命名为 index.html

示例: MainFile="main.html"

测试报告的标题,指定为字符串标量或字符向量。默认情况下,插件使用 "MATLAB Test Report" 作为标题。

示例: Title="My Test Report"

是否包含命令行窗口的文本输出,指定为数值或逻辑值 0 (false) 或 1 (true)。默认情况下,该插件不会在测试报告中包含命令行窗口的文本输出。

是否包含通过事件的诊断,指定为数值或逻辑值 0 (false) 或 1 (true)。默认情况下,插件不在测试报告中包含通过事件的诊断。

要在测试报告中包含的已记录诊断的最大详细级别,指定为从 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"

示例

全部展开

根据两个测试文件创建一个测试套件,运行该套件,并生成单文件 HTML 测试报告。

在当前文件夹中名为 eyeTest.m 的文件中,创建一个基于函数的测试来测试 eye 函数。

function tests = eyeTest
tests = functiontests(localfunctions);
end

function doubleClassTest(testCase)
actual = eye;
verifyClass(testCase,actual,"double")
end

function singleClassTest(testCase)
actual = eye("single");
verifyClass(testCase,actual,"single")
end

function uint16ClassTest(testCase)
actual = eye("uint16");
verifyClass(testCase,actual,"uint16")
end

function sizeTest(testCase)
expected = [7 13];
actual = eye(expected);
verifySize(testCase,actual,expected)
end

function valueTest(testCase)
actual = eye(42);
verifyEqual(testCase,unique(diag(actual)),1)    % Diagonal values must be 1
verifyEqual(testCase,unique(triu(actual,1)),0)  % Upper triangular values must be 0
verifyEqual(testCase,unique(tril(actual,-1)),0) % Lower triangular values must be 0
end

在当前文件夹中另一个名为 ZerosTest.m 的文件中,创建一个基于类的测试来测试 zeros 函数。

classdef ZerosTest < matlab.unittest.TestCase
    properties (TestParameter)
        type = {'single','double','uint16'};
        size = struct("s2d",[3 3],"s3d",[2 5 4]);
    end
    
    methods (Test)
        function testClass(testCase,size,type)
            testCase.verifyClass(zeros(size,type),type)
        end
        
        function testSize(testCase,size)
            testCase.verifySize(zeros(size),size)
        end
        
        function testDefaultClass(testCase)
            testCase.verifyClass(zeros,"double")
        end
        
        function testDefaultSize(testCase)
            testCase.verifySize(zeros,[1 1])
        end
        
        function testDefaultValue(testCase)
            testCase.verifyEqual(zeros,0)
        end
    end
end

导入 TestReportPlugin 类。

import matlab.unittest.plugins.TestReportPlugin

基于测试文件创建一个测试套件。

suite = testsuite(["eyeTest.m" "ZerosTest.m"]);

创建一个不含任何插件的测试运行器。以下代码将创建一个不产生任何输出的静默运行器。

runner = testrunner("minimal");

创建一个插件,该插件生成一个以 "myTestReport.html" 作为 HTML 文件名的单文件 HTML 测试报告。

plugin = TestReportPlugin.producingHTML("myTestReport.html");

将该插件添加到测试运行器中并运行测试。在此示例中,所有测试都通过,插件在当前文件夹中生成一个单文件 HTML 测试报告。

runner.addPlugin(plugin)
results = runner.run(suite)
Generating test report. Please wait.
    Preparing content for the test report.
    Adding content to the test report.
    Writing test report to file.
Test report has been saved to:
 C:\work\myTestReport.html

results = 

  1×16 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   16 Passed, 0 Failed, 0 Incomplete.
   0.15478 seconds testing time.

要打开生成的测试报告,请点击指向 HTML 文件的超链接或使用 open 函数。

open("myTestReport.html")

版本历史记录

在 R2017b 中推出

全部展开