Main Content

matlab.unittest.plugins.CodeCoveragePlugin.forFile

クラス: matlab.unittest.plugins.CodeCoveragePlugin
名前空間: matlab.unittest.plugins

ファイルのコード カバレッジ情報を収集するプラグインを作成

説明

plugin = matlab.unittest.plugins.CodeCoveragePlugin.forFile(file) は、指定されたファイル内にあるソース コードについてのコード カバレッジ情報を収集し、その情報から HTML コード カバレッジ レポートを生成するプラグインを作成します。

plugin = matlab.unittest.plugins.CodeCoveragePlugin.forFile(file,Name,Value) は、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、plugin = matlab.unittest.plugins.CodeCoveragePlugin.forFile("myFile.m","Producing",matlab.unittest.plugins.codecoverage.CoberturaFormat("report.xml")) は、指定されたファイル内にあるソース コードの Cobertura XML コード カバレッジ レポートを生成するプラグインを作成します。

入力引数

すべて展開する

ソース コードが含まれるファイルの名前。.m.mlx、または .mlapp で終わる string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。値は相対パスにすることができますが、相対パスは現在のフォルダー内になければなりません。それ以外の場合、値は絶対パスでなければなりません。file を使用して複数のファイルを指定できます。

例: "myFile.m"

例: "C:\work\myFile.m"

例: ["fileA.m" "fileB.mlx" "C:\work\fileC.mlapp"]

名前と値の引数

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

例: plugin = matlab.unittest.plugins.CodeCoveragePlugin.forFile("myFile.m",Producing=matlab.unittest.plugins.codecoverage.CoberturaFormat("report.xml"))

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

例: plugin = matlab.unittest.plugins.CodeCoveragePlugin.forFile("myFile.m","Producing",matlab.unittest.plugins.codecoverage.CoberturaFormat("report.xml"))

コード カバレッジ情報にアクセスする形式。CoverageReport オブジェクト、CoberturaFormat オブジェクト、CoverageResult オブジェクト、またはこれらの形式オブジェクトの行ベクトルとして指定します。複数の形式オブジェクトを指定した場合、プラグインは各形式の情報へのアクセスを提供します。

例: Producing=matlab.unittest.plugins.codecoverage.CoberturaFormat("report.xml")

収集するカバレッジ メトリクスのレベル。次の表のいずれかの値として指定します。既定では、プラグインはステートメントと関数のカバレッジ メトリクスを収集します。

MetricLevel の値含まれるカバレッジのタイプ
"statement"ステートメント カバレッジ、関数カバレッジ

"decision" (MATLAB® Test™ が必要)

ステートメント カバレッジ、関数カバレッジ、判定カバレッジ

"condition" (MATLAB Test が必要)

ステートメント カバレッジ、関数カバレッジ、判定カバレッジ、条件カバレッジ

"mcdc" (MATLAB Test が必要)

ステートメント カバレッジ、関数カバレッジ、判定カバレッジ、条件カバレッジ、改良条件判定カバレッジ (MC/DC)

カバレッジのタイプの詳細については、Types of Code Coverage for MATLAB Source Code (MATLAB Test)を参照してください。

属性

statictrue

メソッドの属性の詳細については、メソッドの属性を参照してください。

すべて展開する

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

現在のフォルダー内のファイルに、関数 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 をテストするには、現在のフォルダーに 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

SolverTest クラスからテスト スイートを作成します。

suite = testsuite("SolverTest");

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

import matlab.unittest.plugins.CodeCoveragePlugin
import matlab.unittest.plugins.codecoverage.CoberturaFormat
runner = testrunner("textoutput");
sourceCodeFile = "quadraticSolver.m";
reportFile = "coverageReport.xml";
reportFormat = CoberturaFormat(reportFile);
p = CodeCoveragePlugin.forFile(sourceCodeFile,"Producing",reportFormat);
runner.addPlugin(p)

テストを実行します。この例では、すべてのテストがパスし、ソース コードはフル カバレッジの評価を受けます。プラグインにより、現在のフォルダーに Cobertura XML コード カバレッジ レポートが生成されます。

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

継続的インテグレーション (CI) プラットフォームで生成されたコード カバレッジ レポートを処理できます。また、open(reportFile)disp(fileread(reportFile)) などのコマンドを使用してコンテンツを表示することもできます。

バージョン履歴

R2017b で導入

すべて展開する