Main Content

generateHTMLReport

Class: matlab.unittest.TestResult
Namespace: matlab.unittest

Generate HTML test report from test results

Since R2022a

Description

generateHTMLReport(results) generates a multifile HTML test report from the test results and saves it to a temporary folder. By default, the method names the main file of the report index.html.

Use this method to generate an HTML test report once the test run is complete and the test results are available.

generateHTMLReport(results,fileOrFolder) saves the report to the specified location:

  • If you specify a file, the method generates a single-file report and saves it as the specified file. In a single-file HTML test report, all the contents of the report, such as text and images, are included in a single HTML file. (since R2024a)

  • If you specify a folder, the method generates a multifile report and saves it to the specified folder.

example

generateHTMLReport(___,Name=Value) specifies options using one or more name-value arguments in addition to any of the input argument combinations in previous syntaxes. For example, generateHTMLReport(results,MainFile="main.html") generates a multifile test report whose main file is main.html instead of index.html.

Input Arguments

expand all

Test results, specified as a matlab.unittest.TestResult array.

Name of the test report file for a single-file report or the test report folder for a multifile report, specified as a string scalar or character vector. The value can be a path relative to the current folder or an absolute path.

Example: "myTestReport.html"

Example: "C:\work\myTestReport"

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: generateHTMLReport(results,MainFile="main.html") generates a multifile test report whose main file is main.html.

Name of the main HTML file of a multifile test report, specified as a string scalar or character vector ending in .html or .htm. If you do not specify MainFile, the method names the main file of the multifile test report index.html.

Example: MainFile="main.html"

Title of the test report, specified as a string scalar or character vector. By default, the method uses "MATLAB® Test Report" as the title.

Example: Title="My Test Report"

Examples

expand all

Run a suite of tests and then generate a single-file HTML test report from the test results.

Create a function-based test sampleTest.m in your current folder. The file contains two tests that pass and one test that fails.

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

function testA(testCase)      % Test passes
verifyEqual(testCase,2+3,5)
end

function testB(testCase)      % Test fails
verifyGreaterThan(testCase,13,42)
end

function testC(testCase)      % Test passes
verifySubstring(testCase,"Hello World!","llo")
end

Run the tests in sampleTest.m.

results = runtests("sampleTest");
Running sampleTest
.
================================================================================
Verification failed in sampleTest/testB.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyGreaterThan failed.
    --> The value must be greater than the minimum value.
    
    Actual Value:
        13
    Minimum Value (Exclusive):
        42
    ------------------
    Stack Information:
    ------------------
    In C:\work\sampleTest.m (testB) at 10
================================================================================
..
Done sampleTest
__________

Failure Summary:

     Name              Failed  Incomplete  Reason(s)
    ===============================================================
     sampleTest/testB    X                 Failed by verification.

In your current folder, generate a single-file HTML test report from the test results with "myTestReport.html" as the HTML filename.

generateHTMLReport(results,"myTestReport.html")
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

Open the generated test report.

open("myTestReport.html")

Limitations

  • A test report generated by the generateHTMLReport method does not include the text output from the Command Window.

Tips

  • When you generate a test report from test results that are created by a default runner, the report includes diagnostics for failing events and messages logged at the matlab.automation.Verbosity.Terse level. To generate a test report that includes diagnostics for passing events or messages logged at different verbosity levels, first customize your test run by adding a DiagnosticsRecordingPlugin instance to the runner. For example, run your tests and generate a test report that includes passing diagnostics and messages logged at all verbosity levels.

    import matlab.unittest.plugins.DiagnosticsRecordingPlugin
    import matlab.automation.Verbosity
    suite = testsuite("sampleTest");
    runner = testrunner("minimal");
    runner.addPlugin(DiagnosticsRecordingPlugin( ...
        IncludingPassingDiagnostics=true,LoggingLevel=Verbosity.Verbose))
    results = run(runner,suite);
    generateHTMLReport(results)
  • To generate a test report without explicitly collecting the test results, customize your test run by adding a TestReportPlugin instance to the test runner.

Version History

Introduced in R2022a

expand all