Main Content

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

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

Cobertura XML コード カバレッジ レポートの形式

説明

matlab.unittest.plugins.codecoverage.CoberturaFormat クラスは、Cobertura XML 形式でコード カバレッジ レポートを生成する手段となります。この形式でコード カバレッジ レポートを生成するには、CoberturaFormat オブジェクトを使用して CodeCoveragePlugin インスタンスを作成してから、プラグインをテスト ランナーに追加します。

作成

説明

format = matlab.unittest.plugins.codecoverage.CoberturaFormat(filename) は、Cobertura XML 形式でレポートを生成して指定ファイル名で保存するように CodeCoveragePlugin に指示する CoberturaFormat オブジェクトを作成します。

入力引数

すべて展開する

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

例: "myCoverageReport.xml"

例: "C:\work\myCoverageReport.xml"

すべて折りたたむ

ソース コードに対してテスト スイートを実行して 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 で導入

すべて展開する