メインコンテンツ

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) は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、plugin = matlab.unittest.plugins.TestReportPlugin.producingHTML("MainFile","main.html") は、メイン ファイルが index.html ではなく main.html のマルチファイル テスト レポートを生成するプラグインを作成します。

入力引数

すべて展開する

シングルファイル レポートのテスト レポート ファイルまたはマルチファイル レポートのテスト レポート フォルダーの名前。string スカラーまたは文字ベクトルとして指定します。値は現在のフォルダーに対する相対パスまたは絶対パスのいずれかになります。

例: "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 で終わる string スカラーまたは文字ベクトルとして指定します。MainFile を指定しない場合、プラグインはマルチファイル テスト レポートのメイン ファイルに index.html という名前を付けます。

例: MainFile="main.html"

テスト レポートのタイトル。string スカラーまたは文字ベクトルとして指定します。既定では、プラグインは "MATLAB Test Report" をタイトルとして使用します。

例: Title="My Test Report"

コマンド ウィンドウからのテキスト出力を含めるかどうか。数値または logical 0 (false) または 1 (true) として指定します。既定では、プラグインはコマンド ウィンドウからのテキスト出力をテスト レポートに含めません。

パスしたイベントの診断情報を含めるかどうか。数値または logical 0 (false) または 1 (true) として指定します。既定では、プラグインはパスしたイベントの診断情報をテスト レポートに含めません。

テスト レポートに含める診断ログの最大詳細レベル。0 から 4 までの整数スカラー、matlab.automation.Verbosity 列挙オブジェクト、または列挙のテキスト表現として指定します。プラグインは、指定されたレベル以下でログに記録された診断を含めます。

数値表現列挙型メンバー名詳細レベルの説明
0None

情報なし

1Terse

最小限の情報

2Concise

中程度の情報量

3Detailed

ある程度の補足的な情報

4Verbose

多くの補足的な情報

既定では、プラグインは matlab.automation.Verbosity.Terse レベル (レベル 1) でログに記録された診断を含めます。診断ログを除外するには、LoggingLevelmatlab.automation.Verbosity.None (レベル 0) に指定します。

診断ログとは、log (TestCase) メソッドおよび log (Fixture) メソッドによってテスト フレームワークに送る診断です。

例: "LoggingLevel","detailed"

すべて展開する

2 つのテスト ファイルからテスト スイートを作成し、スイートを実行して、シングルファイル 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");

HTML ファイル名が "myTestReport.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 で導入

すべて展開する