主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

自定义测试结果报告

您可以通过自定义报告来选择如何格式化和汇总测试结果。您可以使用自定义类、自定义模板文件或两者的组合来自定义报告。自定义类控制 Simulink® Test™ 输出的内容和格式,而自定义模板文件控制报告文件的内容和格式。例如,您可以使用自定义类仅在报告中包含失败的测试或使测试结果具有特定的字体大小。您可以使用自定义模板文件添加带有自定义文本的封面并控制自定义文本的字体。

使用自定义类自定义报告

使用 sltest.testmanager.TestResultReport 类创建子类,然后使用属性和方法自定义测试管理器如何生成结果报告。您可以更改字体样式、添加图、将结果组织到表格中、包含模型图像等等。使用自定义类,需要 MATLAB® Report Generator™ 许可证。

要自定义生成的报告,您必须从 sltest.testmanager.TestResultReport 类继承。继承该类后,您可以修改其属性和方法。要继承该类,请将类定义部分添加到新的或现有的 MATLAB 脚本中。子类是您的自定义类名,您继承的超类是 sltest.testmanager.TestResultReport。有关创建子类的更多信息,请参阅 设计子类构造函数。然后,向继承的类或方法中添加代码来创建您的自定义。

方法层次

当您创建子类时,派生类将从 sltest.testmanager.TestResultReport 类继承方法。报告主体分为三个主要部分:结果集模块、测试套件结果模块和测试用例结果模块。

结果集模块包含结果集表、覆盖率表和目录的链接。

测试套件结果模块包含测试套件结果表、覆盖率表、需求链接和目录链接。

测试用例结果模块包含测试用例和测试迭代结果表、覆盖率表、需求链接、信号输出图、比较图、测试用例设置以及目录链接。

使用自定义模板文件自定义报告

您可以将报告生成为 HTML、PDF 或 DOCX 文件。您可以自定义报告的模板文件以添加内容、删除内容、更改格式或更改报告的部分顺序。有关自定义模板文件的更多信息,请参阅 修改 Microsoft Word 模板中的样式 (MATLAB Report Generator)修改 HTML 模板中的样式 (MATLAB Report Generator)修改 PDF 模板中的样式 (MATLAB Report Generator)

自定义测试结果报告

此示例显示如何使用自定义类、自定义模板文件或两者的组合来自定义测试结果报告。

使用自定义类来自定义测试结果报告

您可以通过创建sltest.testmanager.TestResultReport的子类并修改方法和属性来自定义您的报告。您可以更改报告标题、图、表格、标题、图标和报告的其他方面。此示例有一个名为 CustomReport 的自定义类文件,其中包含修改后的属性和方法。

要自定义类,请定义一个新类并从 sltest.testmanager.TestResultReport 类继承。在这个示例中,新的类是 CustomReport

classdef CustomReport < sltest.testmanager.TestResultReport    

要使用受保护的 SetAccess 修改属性,请向新定义的类添加类构造函数方法。然后设置您想要更改的属性的值。在此示例中,CustomReport 将正文字体大小更改为 11 pt。

methods
    function this = CustomReport(resultObjects, reportFilePath)
    this@sltest.testmanager.TestResultReport(resultObjects,reportFilePath);
        this.BodyFontSize = "11pt";
    end
end

要使用公共 SetAccess 修改属性,则在以编程方式生成报告时,请在 sltest.testmanager.report 命令中包含属性名称和新值。或者,当使用测试管理器生成报告时,在“创建测试结果报告”窗口中指定这些属性的值。

要更改或添加报告内容,请修改继承的类方法。在此示例中,CustomReport 修改了 addTitlePage 方法以在报告的标题页上包含自定义标签。

methods(Access=protected)
        function addTitlePage(obj)
            import mlreportgen.dom.*;
            
            % Call the superclass method to get the default behavior
            addTitlePage@sltest.testmanager.TestResultReport(obj);

            % Add a custom message
            label = Text("Some custom content can be added here");
            append(obj.TitlePart,label);
        end
end

此外,CustomReport 中的第 10 行至第 66 行修改了 genTestCaseResultBlock 方法以添加模型屏幕截图。

使用自定义模板文件自定义测试结果报告

您还可以使用自定义模板文件来自定义报告。要自定义 PDF 模板文件,请按照以下步骤操作:

1.要访问模板文件,请解压缩 PDF 模板文件。

unzip('dCustomReportTemplate_pdf_sample1.pdftx');

解压文件会在新的 root.html 文件夹中创建一个 /stylesheets/root.css 文件和一个 CustomReportTemplate_pdf_sample1 文件。

2.使用文本编辑器打开并编辑 root.html 文件。该文件按照内容在报告中出现的顺序列出了内容漏洞。在此文件中,您可以重新排序报告部分并删除模板孔。

3.在 stylesheets 文件夹中,使用文本编辑器打开并编辑 root.css 文件。在此文件中,您可以更改在 root.html 文件中添加的内容的表格边框、字体大小、文本颜色和其他样式。要了解有关修改报告样式的更多信息,请参阅修改 PDF 模板中的样式 (MATLAB Report Generator)

4.将文件压缩到 dCustomReportTemplate_pdf_sample1.pdftx 文件中。

zipTemplate('dCustomReportTemplate_pdf_sample1.pdftx');

有关自定义 Word 或 HTML 模板的信息,请分别参阅 修改 Microsoft Word 模板中的样式 (MATLAB Report Generator)修改 HTML 模板中的样式 (MATLAB Report Generator)

默认 PDF 报告使用此 HTML 代码:

<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>Report Template</title>
    <link rel="StyleSheet" href="./stylesheets/root.css" type="text/css" />
</head>
	
<body>
    <hole id="ChapterTitle"/>
 
    <pagebreak/>
    <hole id="ChapterTOC"/>

    <pagebreak/>
    <hole id="ChapterBody"/>

</body>
</html>

此示例中的模板文件修改了 <body> 文件的 root.html 部分中的 HTML 代码,以添加页码、带有 MathWorks 徽标的封面、表格和自定义文本。

此代码添加页码:

<layout style="page-margin: 1in 1in 1in 1in 0.5in 0.5in 0in; page-size: 8.5in 11in portrait" >
        <pfooter template-name="Footer">
        </pfooter>
        <pnumber initial-value="1" format="1" />
</layout>

此代码添加了徽标:

<div align="center">
    <img src="./images/bg_global_logo.png" height="40px" width="40px"/>
    <img src="./images/bg_h1_matlab.png" />
</div>

此代码添加表的标题:

    <h1 align="center">Information captured in this report</h1>

第 23 行至第 82 行的代码添加了表格。该表是硬编码的,并不反映测试结果报告的内容。但是,它是如何在模板文件中创建表的示例。

此代码添加自定义文本:

<br/><br/>
<span class="loremipsum">
	Lorem ipsum dolor sit amet.
</span>

生成自定义的测试结果报告

您可以通过编程方式或使用测试管理器界面生成测试结果报告。

要以编程方式生成报告:

1.在测试管理器中加载并运行测试。

exampleFile = 'sltestTestManagerReportsTestSuite.mldatx';
sltest.testmanager.load(exampleFile);
results = sltest.testmanager.run;

2.指定报告的文件名和扩展名。

filePath = 'Report.pdf';

3.使用自定义类和自定义模板文件生成报告。您还可以使用公共 SetAccess(例如 IncludeCoverageResult)作为名称-值参量来修改其他属性。

sltest.testmanager.report(results,filePath,...
    IncludeTestResults=0, ...
    IncludeComparisonSignalPlots=true, ...
    IncludeSimulationSignalPlots=true, ...
    NumPlotRowsPerPage=3, ...
    CustomReportClass="CustomReport", ...
    IncludeCoverageResult=true,...
    CustomTemplateFile="dCustomReportTemplate_pdf_sample1.pdftx")

要使用测试管理器生成报告:

1.双击当前文件夹中的测试文件 sltestTestManagerReportsTestSuite.mldatx,以在测试管理器中打开它。

2.在左侧窗格中,选择测试套件。点击运行

3.在左侧窗格中,选择测试结果。在工具条中,点击报告

xx.png

4.在创建测试结果报告对话框的自定义部分中,点击模板文件旁边的文件夹图标。

5.导航到 'dCustomReportTemplate_pdf_sample1.pdftx' 文件并点击打开

6.将报告类设置为 CustomReport,这是自定义类的名称。您还可以在此窗口中修改具有公共 SetAccess 的属性,例如覆盖率结果

2024-02-21_10-28-23.png

7.点击创建

另请参阅

|

主题