matlab.unittest.plugins.TestReportPlugin.producingPDF
クラス: matlab.unittest.plugins.TestReportPlugin
名前空間: matlab.unittest.plugins
PDF テスト レポートを生成するプラグインを作成する
構文
説明
plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF
はテスト結果の PDF レポートを一時フォルダーに生成するプラグインを作成します。この構文は plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF([tempname '.pdf'])
と等価です。
plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF(
は指定したファイル名を使用してレポートを保存します。filename
)
plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF(___,
は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name,Value
)plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF("PageOrientation","landscape")
は横方向のテスト レポートを生成するプラグインを作成します。
入力引数
テスト レポート ファイルの名前。.pdf
で終わる string スカラーまたは文字ベクトルとして指定します。値は現在のフォルダーに対する相対パスまたは絶対パスのいずれかになります。
例: "myTestReport.pdf"
例: "C:\work\myTestReport.pdf"
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF(PageOrientation="landscape")
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: plugin= matlab.unittest.plugins.TestReportPlugin.producingPDF("PageOrientation","landscape")
レポートの向き。"portrait"
または "landscape"
として指定します。既定では、プラグインは縦方向のレポートを生成します。
テスト レポートのタイトル。string スカラーまたは文字ベクトルとして指定します。既定では、プラグインは "MATLAB® Test Report"
をタイトルとして使用します。
例: Title="My Test Report"
コマンド ウィンドウからのテキスト出力を含めるかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。既定では、プラグインはコマンド ウィンドウからのテキスト出力をテスト レポートに含めません。
パスしたイベントの診断情報を含めるかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。既定では、プラグインはパスしたイベントの診断情報をテスト レポートに含めません。
テスト レポートに含める診断ログの最大詳細レベル。0
から 4
までの整数スカラー、matlab.automation.Verbosity
列挙オブジェクト、または列挙のテキスト表現として指定します。プラグインは、指定されたレベル以下でログに記録された診断を含めます。
数値表現 | 列挙型メンバー名 | 詳細レベルの説明 |
---|---|---|
0 | None | 情報なし |
1 | Terse | 最小限の情報 |
2 | Concise | 中程度の情報量 |
3 | Detailed | ある程度の補足的な情報 |
4 | Verbose | 多くの補足的な情報 |
既定では、プラグインは matlab.automation.Verbosity.Terse
レベル (レベル 1) でログに記録された診断を含めます。診断ログを除外するには、LoggingLevel
を matlab.automation.Verbosity.None
(レベル 0) に指定します。
診断ログとは、log (TestCase)
メソッドおよび log (Fixture)
メソッドによってテスト フレームワークに送る診断です。
例: "LoggingLevel","detailed"
例
2 つのテスト ファイルからテスト スイートを作成し、スイートを実行して、結果の PDF レポートを生成します。
ScriptBasedTest.m
という名前の作業フォルダーに、以下のテスト スクリプトを含む新しいファイルを作成します。スクリプトには 2 つの失敗する未完了のテストが含まれます。
%% Test double class expSolution = 'double'; actSolution = ones; assert(isa(actSolution,expSolution)) %% Test single class expSolution = 'single'; actSolution = ones('single'); assert(isa(actSolution,expSolution)) %% Test uint16 class expSolution = 'uint16'; actSolution = ones('uint16'); assert(isa(actSolution,expSolution)) %% Test that fails assert(false==true); %% Another test that fails assert(strcmp('correlation','causation'))
以下のテスト クラスを含む ClassBasedTest.m
という名前のファイルを作成します。クラスには失敗するテストが 1 つ含まれ、パラメーター化によって 9 個の失敗したテスト結果が得られます。
classdef ClassBasedTest < matlab.unittest.TestCase properties (ClassSetupParameter) generator = {'twister','combRecursive','multFibonacci'}; end properties (MethodSetupParameter) seed = {0,123,4294967295}; end properties (TestParameter) dim1 = struct('small',1,'medium',2,'large',3); dim2 = struct('small',2,'medium',3,'large',4); dim3 = struct('small',3,'medium',4,'large',5); type = {'single','double'}; end methods (TestClassSetup) function ClassSetup(testCase,generator) orig = rng; testCase.addTeardown(@rng,orig) rng(0, generator) end end methods (TestMethodSetup) function MethodSetup(testCase,seed) orig = rng; testCase.addTeardown(@rng,orig) rng(seed) end end methods (Test, ParameterCombination='sequential') function testSize(testCase,dim1,dim2,dim3) testCase.verifySize(rand(dim1,dim2,dim3),[dim1 dim2 dim3]) end end methods (Test, ParameterCombination='pairwise') function testRepeatable(testCase,dim1,dim2,dim3) state = rng; firstRun = rand(dim1,dim2,dim3); rng(state) secondRun = rand(dim1,dim2,dim3); testCase.verifyEqual(firstRun,secondRun); end end methods (Test) function testClass(testCase,dim1,dim2,type) testCase.verifyClass(rand(dim1,dim2,type),type) end end end
コマンド プロンプトで、両方のテスト ファイルからテスト スイートを作成します。
import matlab.unittest.TestRunner; import matlab.unittest.TestSuite; import matlab.unittest.plugins.TestReportPlugin; suite = testsuite({'ScriptBasedTest','ClassBasedTest'})
suite = 1×284 Test array with properties: Name ProcedureName TestClass BaseFolder Parameterization SharedTestFixtures Tags Tests Include: 17 Unique Parameterizations, 0 Shared Test Fixture Classes, 0 Tags..
サイレント テスト ランナーを作成し、コマンド ウィンドウに情報が出力されないようにします。出力を MyTestReport.pdf
ファイルに送信する TestReportPlugin
を作成します。
runner = TestRunner.withNoPlugins;
pdfFile = 'MyTestReport.pdf';
plugin = TestReportPlugin.producingPDF(pdfFile);
プラグインを TestRunner
に追加して、スイートを実行します。
runner.addPlugin(plugin); result = runner.run(suite)
Generating report. Please wait. Preparing content for the report. Adding content to the report. Writing report to file. Report has been saved to: C:\work\MyTestReport.pdf result = 1×284 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 282 Passed, 2 Failed, 2 Incomplete. 2.2054 seconds testing time.
テスト レポートを開きます。
open(pdfFile)
関数ベースのテストからテスト スイートを作成し、スイートを実行して、結果のレポートを生成します。パスした診断情報とコマンド ウィンドウへのテキスト出力を含めます。
FunctionBasedTest.m
という名前の作業フォルダーに、以下の関数ベースのテストを含む新しいファイルを作成します。テスト ファイルには 2 つの失敗するテストが含まれます。
%% Main function to generate tests function tests = FunctionBasedTest tests = functiontests(localfunctions); end %% Test Functions function passingTest(testCase) actSolution = 13*3+7*5; expSolution = 74; verifyEqual(testCase,actSolution,expSolution) end function failingTest(testCase) actSolution = single(1); verifyTrue(testCase,actSolution) end function anotherPassingTest(testCase) verifyClass(testCase,string('some text'),'string') end function anotherFailingTest(testCase) verifyTrue(testCase,strcmp('42','everything')) end
コマンド プロンプトで、FunctionBasedTest.m
からテスト スイートを作成します。既定のプラグインを使用して、出力をコマンド ウィンドウに表示するテスト ランナーを作成します。
import matlab.unittest.TestRunner; import matlab.unittest.TestSuite; import matlab.unittest.plugins.TestReportPlugin; suite = testsuite('FunctionBasedTest'); runner = TestRunner.withTextOutput;
出力を MyTestReport2.pdf
ファイルに送信する TestReportPlugin
を作成します。パスした診断情報とコマンド ウィンドウのテキスト出力をレポートに含めます。
pdfFile = 'MyTestReport2.pdf'; plugin = TestReportPlugin.producingPDF(pdfFile,... 'IncludingPassingDiagnostics',true,'IncludingCommandWindowText',true);
プラグインを TestRunner
に追加して、スイートを実行します。
runner.addPlugin(plugin); result = runner.run(suite);
Running FunctionBasedTest . ================================================================================ Verification failed in FunctionBasedTest/failingTest. --------------------- Framework Diagnostic: --------------------- verifyTrue failed. --> The value must be logical. It is of type "single". Actual single: 1 ------------------ Stack Information: ------------------ In C:\Work\FunctionBasedTest.m (failingTest) at 15 ================================================================================ .. ================================================================================ Verification failed in FunctionBasedTest/anotherFailingTest. --------------------- Framework Diagnostic: --------------------- verifyTrue failed. --> The value must evaluate to "true". Actual logical: 0 ------------------ Stack Information: ------------------ In C:\Work\FunctionBasedTest.m (anotherFailingTest) at 23 ================================================================================ . Done FunctionBasedTest __________ Failure Summary: Name Failed Incomplete Reason(s) =================================================================================== FunctionBasedTest/failingTest X Failed by verification. ----------------------------------------------------------------------------------- FunctionBasedTest/anotherFailingTest X Failed by verification. Generating report. Please wait. Preparing content for the report. Adding content to the report. Writing report to file. Report has been saved to: C:\Work\MyTestReport2.pdf
テスト レポートを開きます。
open(pdfFile)
ヒント
PDF テスト レポートはシステムのロケールとマシンにインストールされているフォント ファミリに基づいて生成されます。英語以外のロケールでレポートを生成する場合、マシンに Noto Sans CJK フォント ファミリがインストールされていないと、レポートには中国語、日本語、韓国語の文字の代わりにシャープ記号 (#) が表示されることがあります。
バージョン履歴
R2016b で導入テスト レポートのタイトルを変更するには、名前と値の引数 Title
を指定します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)