このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
matlab.unittest.plugins.codecoverage.CoberturaFormat クラス
名前空間: matlab.unittest.plugins.codecoverage
Cobertura XML コード カバレッジ レポートの形式
説明
matlab.unittest.plugins.codecoverage.CoberturaFormat
クラスは、Cobertura XML 形式でコード カバレッジ レポートを生成する手段となります。この形式でコード カバレッジ レポートを生成するには、CoberturaFormat
オブジェクトを使用して CodeCoveragePlugin
インスタンスを作成してから、プラグインをテスト ランナーに追加します。
作成
説明
入力引数
filename
— コード カバレッジ レポート ファイルの名前
string スカラー | 文字ベクトル
コード カバレッジ レポート ファイルの名前。.xml
で終わる string スカラーまたは文字ベクトルとして指定します。値は相対パスにすることができますが、相対パスは現在のフォルダー内になければなりません。それ以外の場合、値は絶対パスでなければなりません。
例: "myCoverageReport.xml"
例: "C:\work\myCoverageReport.xml"
例
Cobertura 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 で導入R2023b: Cobertura XML 形式での判定カバレッジ結果の収集
MATLAB® Test™ のライセンスがある場合、ライン カバレッジに加え、判定 (分岐) カバレッジに関する情報を収集できます。判定カバレッジ情報を収集するには、CodeCoveragePlugin
クラスのいずれかの静的メソッドを使用してプラグインを作成するときに名前と値の引数 MetricLevel
を指定します。たとえば、テストを実行し、フォルダー内のソース コードのライン カバレッジ メトリクスと判定カバレッジ メトリクスを含むコード カバレッジ結果を Cobertura XML 形式で生成します。
import matlab.unittest.plugins.CodeCoveragePlugin import matlab.unittest.plugins.codecoverage.CoberturaFormat suite = testsuite("MyTestClass"); runner = testrunner("textoutput"); format = CoberturaFormat("myReport.xml"); plugin = CodeCoveragePlugin.forFolder("myFolder", ... Producing=format,MetricLevel="decision"); runner.addPlugin(plugin) results = runner.run(suite);
引数 MetricLevel
は、結果に含めるカバレッジ タイプを指定します。次の表に、MetricLevel
が取り得る値、および Cobertura XML 形式の結果を収集する際の対応するカバレッジ タイプを示します。Cobertura XML 形式の結果では、条件カバレッジや改良条件判定カバレッジ (MC/DC) はサポートされていません。
MetricLevel の値 | 含まれるカバレッジのタイプ |
---|---|
"statement" (既定) | ライン カバレッジ |
"decision" 、"condition" 、または "mcdc" (MATLAB Test が必要) | ライン カバレッジおよび判定カバレッジ |
R2020a: ProfileReport
よりも推奨
ProfileReport
クラスは削除予定です。代わりに CoverageReport
または CoberturaFormat
を使用してください。推奨されるクラスの方がより正確なコード カバレッジ レポートが生成されます。
形式を指定せずにコード カバレッジ レポートを作成する場合は、パフォーマンス向上のためのコードのプロファイリングを参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)