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(___,"MainFile",filename)MainFile プロパティを指定の名前に設定します。前述の任意の構文で、最後の引数としてファイル名を指定できます。たとえば、format = matlab.unittest.plugins.codecoverage.CoverageReport("MainFile","main.html") は、MainFile プロパティが 'main.html' に設定された CoverageReport オブジェクトを作成します。

入力引数

すべて展開する

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

例: "myCoverageReport"

例: "C:\work\myCoverageReport"

プロパティ

すべて展開する

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

例: 'main.html'

属性:

GetAccess
public
SetAccess
immutable

すべて折りたたむ

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

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

function roots = 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

roots(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a);
roots(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 内のコードの HTML コード カバレッジ レポートを生成するプラグインを使用してテスト ランナーをカスタマイズします。プラグインの出力を現在のフォルダー内の coverageReport という名前のフォルダーに書き込むように指定します。

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

テストを実行します。この例では、すべてのテストがパスし、ソース コードはフル カバレッジの評価を受けます。プラグインにより、現在のフォルダー内の指定フォルダー coverageReport に HTML コード カバレッジ レポートが生成されます。既定では、レポートのメイン ファイルは 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 で導入

すべて展開する