Main Content

matlab.unittest.plugins.codecoverage.CoverageReport クラス

名前空間: matlab.unittest.plugins.codecoverage

対話型 HTML コード カバレッジ レポートの形式

説明

matlab.unittest.plugins.codecoverage.CoverageReport クラスは、HTML 形式の対話型コード カバレッジ レポートを生成する方法を提供します。この形式でコード カバレッジ レポートを生成するには、CoverageReport オブジェクトを使用して CodeCoveragePlugin インスタンスを作成してから、プラグインをテスト ランナーに追加します。

対話型コード カバレッジ レポートでは、レポート内でオプションを選択することにより、表示される情報をカスタマイズできます。たとえば、含めるカバレッジ メトリクスをリストから選択したり、カバー済みや未達の実行可能ファイルに対する強調表示を制御したりできます。

作成

説明

format = matlab.unittest.plugins.codecoverage.CoverageReport は、HTML 形式の対話型レポートを生成して一時フォルダーに保存するように CodeCoveragePlugin に指示する CoverageReport オブジェクトを作成します。既定では、レポートのメイン ファイルは index.html です。

format = matlab.unittest.plugins.codecoverage.CoverageReport(folderName) はコード カバレッジ レポート フォルダーの名前を指定します。

format = matlab.unittest.plugins.codecoverage.CoverageReport(___,Name,Value) は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、format = matlab.unittest.plugins.codecoverage.CoverageReport("MainFile","main.html") は、main.html をメイン ファイルとするコード カバレッジ レポートを生成するための CoverageReport オブジェクトを作成します。

入力引数

すべて展開する

コード カバレッジ レポート フォルダーの名前。string スカラーまたは文字ベクトルとして指定します。値は相対パスにすることができますが、相対パスは現在のフォルダー内になければなりません。それ以外の場合、値は絶対パスでなければなりません。フォルダーが存在しない場合、CoverageReport はそれを作成します。

例: "myCoverageReport"

例: "C:\work\myCoverageReport"

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: format = matlab.unittest.plugins.codecoverage.CoverageReport(MainFile="main.html")

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: format = matlab.unittest.plugins.codecoverage.CoverageReport("MainFile","main.html")

メイン HTML ファイルの名前。.html または .htm で終わる string スカラーまたは文字ベクトルとして指定します。名前を指定しない場合、プラグインはレポートのメイン ファイルに index.html という名前を付けます。

この引数は MainFile プロパティを設定します。

例: MainFile="main.html"

R2024a 以降

HTML ドキュメントのタイトル。string スカラーまたは文字ベクトルとして指定します。指定したタイトルは、コード カバレッジ レポートをブラウザーで開いたときにタブに表示されます。

例: DocumentTitle="My Coverage Report"

プロパティ

すべて展開する

メイン HTML ファイルの名前。.html または .htm で終わる文字ベクトルとして返されます。既定では、レポートのメイン ファイルは index.html です。

このプロパティは名前と値の引数 MainFile によって設定されます。

例: 'main.html'

属性:

GetAccess
public
SetAccess
immutable

すべて折りたたむ

ソース コードに対してテスト スイートを実行して HTML 形式の対話型コード カバレッジ レポートを生成します。

現在のフォルダー内の sourceFolder という名前のフォルダーに、関数 quadraticSolver を作成します。この関数は入力として 2 次多項式の係数をとり、多項式の根を返します。係数を非数値として指定した場合、関数はエラーをスローします。

function r = quadraticSolver(a,b,c)
% quadraticSolver returns solutions to the
% quadratic equation a*x^2 + b*x + c = 0.

if ~isa(a,"numeric") || ~isa(b,"numeric") || ~isa(c,"numeric")
    error("quadraticSolver:InputMustBeNumeric", ...
        "Coefficients must be numeric.")
end

r(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a);
r(2) = (-b - sqrt(b^2 - 4*a*c)) / (2*a);

end

関数 quadraticSolver をテストするには、現在のフォルダー内の testsFolder という名前のフォルダーに SolverTest クラスを作成します。実数解、虚数解、非数値入力について関数をテストする 3 つの Test メソッドを定義します。

classdef SolverTest < matlab.unittest.TestCase
    methods(Test)
        function realSolution(testCase)
            actSolution = quadraticSolver(1,-3,2);
            expSolution = [2 1];
            testCase.verifyEqual(actSolution,expSolution)
        end
        function imaginarySolution(testCase)
            actSolution = quadraticSolver(1,2,10);
            expSolution = [-1+3i -1-3i];
            testCase.verifyEqual(actSolution,expSolution)
        end
        function nonnumericInput(testCase)
            testCase.verifyError(@()quadraticSolver(1,"-3",2), ...
                "quadraticSolver:InputMustBeNumeric")
        end
    end
end

テストを実行してコード カバレッジ レポートを生成するには、まず sourceFolder をパスに追加します。

addpath("sourceFolder")

testsFolder からテスト スイートを作成します。

suite = testsuite("testsFolder");

テスト ランナーを作成し、sourceFolder 内のコードの対話型コード カバレッジ レポートを生成するプラグインを使用してテスト ランナーをカスタマイズします。プラグインの出力を現在のフォルダー内の coverageReport という名前のフォルダーに書き込むように指定します。

import matlab.unittest.plugins.CodeCoveragePlugin
import matlab.unittest.plugins.codecoverage.CoverageReport
runner = testrunner("textoutput");
reportFormat = CoverageReport("coverageReport");
p = CodeCoveragePlugin.forFolder("sourceFolder","Producing",reportFormat);
runner.addPlugin(p)

テストを実行します。この例では、すべてのテストがパスし、ソース コードはフル カバレッジの評価を受けます。プラグインにより、現在のフォルダー内の指定フォルダー coverageReport に対話型コード カバレッジ レポートが生成されます。既定では、レポートのメイン ファイルは index.html です。

results = runner.run(suite);
Running SolverTest
...
Done SolverTest
__________

MATLAB code coverage report has been saved to:
 C:\work\coverageReport\index.html

レポートのメイン ファイルを開きます。

open(fullfile("coverageReport","index.html"))

バージョン履歴

R2019a で導入

すべて展開する