このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
runtests
一連のテストの実行
構文
説明
は、現在のフォルダーのすべてのテストを実行し、テスト結果を返します。 testResults
= runtests
は、指定したテストを実行します。testResults
= runtests(tests
)
は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、testResults
= runtests(___,Name,Value
)testResults = runtests("IncludeSubfolders",true)
は、現在のフォルダーおよびそのすべてのサブフォルダー内にあるすべてのテストを実行します。
[
は、名前と値の引数 testResults
,coverageResults
] = runtests(___)ReportCoverageFor
を指定した場合にコード カバレッジ解析の結果も返します。 (R2023b 以降)
例
作業フォルダー内のテストの実行
現在の作業フォルダーに myExample
というフォルダーを作成し、そのフォルダーに切り替えます。
myExample
フォルダーに typeTest.m
というテスト スクリプトを作成します。
%% Test double class exp = 'double'; act = ones; assert(isa(act,exp)) %% Test single class exp = 'single'; act = ones('single'); assert(isa(act,exp)) %% Test uint16 class exp = 'uint16'; act = ones('uint16'); assert(isa(act,exp))
myExample
フォルダーに sizeValueTest.m
というテスト スクリプトを作成します。
%% Test size exp = [7 13]; act = ones([7 13]); assert(isequal(size(act),exp)) %% Test values act = ones(42); assert(unique(act) == 1)
現在のフォルダー内のすべてのテストを実行します。
runtests
Running sizeValueTest .. Done sizeValueTest __________ Running typeTest ... Done typeTest __________ ans = 1x5 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 5 Passed, 0 Failed, 0 Incomplete. 0.038077 seconds testing time.
MATLAB® で実行されたテストは 5 つです。sizeValueTest
の 2 つのテストと typeTest
の 3 つのテストにパスしています。
ファイル名を使用したテストの実行
以下に示すテスト ファイルを作成し、MATLAB パス上に runtestsExampleTest.m
として保存します。
function tests = runtestsExampleTest tests = functiontests(localfunctions); function testFunctionOne(testCase)
テストを実行します。
results = runtests('runtestsExampleTest.m');
Running runtestsExampleTest . Done runtestsExampleTest __________
サブフォルダー内のテストの実行
前の例の runtestsExampleTest.m
テスト ファイルが存在しない場合は作成します。
サブフォルダー tmpTest
を作成して、そのフォルダーに次の runtestsExampleSubfolderTest.m
テスト ファイルを作成します。
function tests = runtestsExampleSubfolderTest tests = functiontests(localfunctions); function testFunctionTwo(testCase)
IncludeSubfolders
を true
として指定して、tmpTest
の上のフォルダーからテストを実行します。関数 runtests
は現在のフォルダーとサブフォルダー内のテストを実行します。
results = runtests(pwd,"IncludeSubfolders",true);
Running runtestsExampleTest . Done runtestsExampleTest __________ Running runtestsExampleSubFolderTest . Done runtestsExampleSubFolderTest __________
名前と値の引数 IncludeSubfolders
を指定しなかった場合、runtests
はサブフォルダー内のテストを実行しません。
results = runtests(pwd);
Running runtestsExampleTest . Done runtestsExampleTest __________
プロジェクト内のテストの実行
現在のフォルダーがプロジェクトのルート フォルダーであるか、プロジェクトのルート フォルダーへのパスを関数 runtests
に渡した場合、runtests
は、Test
の分類ラベルが付けられた、指定されたプロジェクトに含まれるすべてのテスト ファイルを実行します。
この例では、C:\projects\project1
のプロジェクト フォルダーに Test
の分類ラベルが付けられたテスト ファイルが含まれていると仮定します。現在のフォルダーをプロジェクトのルート フォルダーに変更し、プロジェクト内のテストを実行します。
cd 'C:\projects\project1'
runtests
あるいは、project1
を開いてテストを実行することもできます。終了したらプロジェクトを閉じます。
proj = openProject('C:\projects\project1');
runtests
close(proj)
さらに別の方法として、プロジェクトのルート フォルダーへの絶対パスを runtests
に渡してプロジェクト内のテストを実行することもできます。
runtests('C:\projects\project1')
テストの並列実行
現在のフォルダー内に runInParallelTest.m
という名前のファイルで次の関数ベースのテストを作成します。
function tests = runInParallelTest tests = functiontests(localfunctions); function testA(testCase) verifyEqual(testCase,5,5); function testB(testCase) verifyTrue(testCase,logical(1)); function testC(testCase) verifySubstring(testCase,'SomeLongText','Long'); function testD(testCase) verifySize(testCase,ones(2,5,3),[2 5 3]); function testE(testCase) verifyGreaterThan(testCase,3,2); function testF(testCase) verifyEmpty(testCase,{},'Cell array is not empty.'); function testG(testCase) verifyMatches(testCase,'Some Text','Some [Tt]ext');
テストを並列実行します。テストを並列実行するには Parallel Computing Toolbox™ が必要です。テスト フレームワークによって、グループの順序と数、あるいは各グループに含めるテストが異なる場合があります。
results = runtests("runInParallelTest.m","UseParallel",true);
Split tests into 7 groups and running them on 4 workers. ---------------- Finished Group 2 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 3 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 1 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 4 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 6 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 5 ---------------- Running runInParallelTest . Done runInParallelTest __________ ---------------- Finished Group 7 ---------------- Running runInParallelTest . Done runInParallelTest __________
パラメーター化された目的のテストの実行
作業フォルダーで testZeros.m
を作成します。このクラスには 4 つのテスト メソッドが含まれます。
classdef testZeros < matlab.unittest.TestCase properties (TestParameter) type = {'single','double','uint16'}; outSize = struct('s2d',[3 3], 's3d',[2 5 4]); end methods (Test) function testClass(testCase, type, outSize) testCase.verifyClass(zeros(outSize,type), type); end function testSize(testCase, outSize) testCase.verifySize(zeros(outSize), outSize); end function testDefaultClass(testCase) testCase.verifyClass(zeros, 'double'); end function testDefaultSize(testCase) testCase.verifySize(zeros, [1 1]); end function testDefaultValue(testCase) testCase.verifyEqual(zeros,0); end end end
テスト スイート全体では 11 のテスト要素があります。testClass
メソッドから 6 要素、testSize
メソッドから 2 要素、testDefaultClass
、testDefaultSize
、testDefaultValue
メソッドから各 1 要素です。
コマンド プロンプトで、testSize
メソッドのすべてのパラメーター化を実行します。
runtests('testZeros/testSize')
Running testZeros .. Done testZeros __________ ans = 1x2 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 2 Passed, 0 Failed, 0 Incomplete. 0.05202 seconds testing time.
関数 runtests
によって、testSize
メソッドからパラメーター化された 2 つのテストが実行されました。あるいは、runtests('testZeros','ProcedureName','testSize')
を使用してテスト プロシージャ名を指定することもできます。
outSize
パラメーター プロパティを使用するテスト要素を実行します。
runtests('testZeros','ParameterProperty','outSize')
Running testZeros ........ Done testZeros __________ ans = 1x8 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 8 Passed, 0 Failed, 0 Incomplete. 0.067227 seconds testing time.
関数 runtests
は outSize
パラメーター プロパティを使用する 8 つのテストを実行しました。testClass
メソッドから 6 要素と testSize
メソッドから 2 要素です。
single
パラメーター名を使用するテスト要素を実行します。
runtests('testZeros','ParameterName','single')
Running testZeros .. Done testZeros __________ ans = 1x2 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 2 Passed, 0 Failed, 0 Incomplete. 0.012866 seconds testing time.
関数 runtests
は outSize
パラメーター名を使用する testClass
メソッドから 2 つのテストを実行しました。
コード カバレッジ情報の取得
R2023b 以降
関数 runtests
を使用して、テストを実行してコード カバレッジ結果を収集します。
現在のフォルダー内の quadraticSolver.m
という名前のファイルで、関数 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
をテストするには、現在のフォルダー内の SolverTest.m
という名前のファイルで 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
クラス内のテストを実行するとともに、名前と値の引数 ReportCoverageFor
を指定してコード カバレッジ解析も実行します。コード カバレッジ レポートの生成に加えてカバレッジ結果にプログラムによってアクセスするには、2 つの出力引数を指定して関数 runtests
を呼び出します。テストの実行後、最初の出力にテスト結果が含まれ、2 番目の出力にカバレッジの結果が含まれています。
[testResults,coverageResults] = runtests("SolverTest", ... "ReportCoverageFor","quadraticSolver.m")
Running SolverTest ... Done SolverTest __________ MATLAB code coverage report has been saved to: C:\Temp\tpf83a0edb_55fb_4039_84f8_230a01d5f591\index.html testResults = 1×3 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 3 Passed, 0 Failed, 0 Incomplete. 1.8685 seconds testing time. coverageResults = Result with properties: Filename: "C:\work\quadraticSolver.m" CreationDate: 16-May-2023 15:11:20 Coverage summary (use generateHTMLReport to generate an HTML report): Function: 1/1 (100%) Statement: 4/4 (100%) Use coverageSummary to retrieve information from the coverage results.
入力引数
tests
— テスト
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テスト。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数を使用してテスト内容を指定します。たとえば、テスト ファイル、テスト クラス、テスト ファイルを含むフォルダー、テスト クラスを含むパッケージ、テスト ファイルを含むプロジェクト フォルダーを指定できます。
例: runtests("myTestFile.m")
例: runtests(["myTestFile/test1" "myTestFile/test3"])
例: runtests("mypackage.MyTestClass")
例: runtests(pwd)
例: runtests({'mypackage.MyTestClass','myTestFile.m',pwd,'mypackage.subpackage'})
例: runtests("C:\projects\project1")
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
例: results = runtests(tests,Name="productA_*")
は、"productA_"
で始まる名前の Test
要素を実行します。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: results = runtests(tests,"Name","productA_*")
は、"productA_"
で始まる名前の Test
要素を実行します。
IncludeSubfolders
— サブフォルダー内のテストを実行するかどうか
false
または 0
(既定値) | true
または 1
サブフォルダー内のテストを実行するかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。既定では、フレームワークは指定されたフォルダー内のテストを実行しますが、そのサブフォルダー内のテストは実行しません。
IncludeSubpackages
— サブパッケージ内のテストを実行するかどうか
false
または 0
(既定値) | true
または 1
サブパッケージ内のテストを実行するかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。既定では、フレームワークは指定されたパッケージ内のテストを実行しますが、そのサブパッケージ内のテストは実行しません。
IncludeReferencedProjects
— 参照プロジェクトのテストを含めるかどうか
false
または 0
(既定値) | true
または 1
参照プロジェクトのテストを含めるかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。参照プロジェクトの詳細については、大規模なプロジェクトのコンポーネント化を参照してください。
InvalidFileFoundAction
— 無効なテスト ファイルに対して実行するアクション
"warn"
(既定値) | "error"
関数で処理するフォルダーまたはパッケージ内の無効なテスト ファイルに対して実行するアクション。"warn"
または "error"
として指定します。
"warn"
— 関数はフォルダーまたはパッケージ内の無効なテスト ファイルのそれぞれについて警告を発行し、有効なファイルのテストを実行します。"error"
— 関数はフォルダーまたはパッケージ内で無効なテスト ファイルを見つけるとエラーをスローします。
無効なテスト ファイルは、フレームワークで実行できないテスト ファイルです。たとえば、構文エラーを含むテスト ファイル、ローカル関数が欠落した関数ベースのテスト ファイル、未定義のパラメーター化プロパティが渡された Test
メソッドを含むファイルなどが含まれます。
BaseFolder
— ベース フォルダー名
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テスト ファイルを含むベース フォルダーの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素が BaseFolder
によって指定されたベース フォルダーの 1 つに含まれていなければなりません。Test
要素がいずれもベース フォルダーと一致しない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
パッケージで定義したテスト ファイルでは、ベース フォルダーは最上位パッケージ フォルダーの親です。
DependsOn
— ソース コードが含まれるファイルおよびフォルダーの名前
string ベクトル | 文字ベクトル | 文字ベクトルの cell ベクトル
ソース コードが含まれているファイルおよびフォルダーの名前。string ベクトル、文字ベクトル、または文字ベクトルの cell ベクトルとして指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理したスイートにテストを含めるには、テストを定義しているファイルが、指定したソース コードに依存している必要があります。テスト ファイルのいずれもソース コードに依存していない場合は、空のテスト スイートが返されます。
指定する値は、拡張子が .m
、.p
、.mlx
、.mlapp
、.mat
、または .slx
である 1 つ以上の既存のファイルを表している必要があります。サポートされていない拡張子をもつファイル名を明示的に指定することはできません。フォルダー名を指定した場合、フレームワークは、そのフォルダー内のサポートされるファイルのパスを抽出します。
DependsOn
を使用するには、MATLAB® Test™ のライセンスが必要です。ソース コードの依存関係によるテストの選択の詳細については、matlabtest.selectors.DependsOn
(MATLAB Test) を参照してください。
例: DependsOn=["myFile.m" "myFolder"]
例: DependsOn=["folderA" "C:\work\folderB"]
Name
— テストの名前
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テストの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Name
プロパティが Name
によって指定された名前の 1 つと一致しなければなりません。Test
要素がいずれも一致する名前をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
特定のテスト ファイルにおいて、テストの名前はテスト内容のうち実行可能な最小部分を一意に識別します。テストの名前には、パッケージ名、ファイル名 (拡張子は除く)、プロシージャ名、およびパラメーター化に関する情報が含まれます。
ParameterProperty
— パラメーター化プロパティ名
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テストで使用されるパラメーターを定義するテスト クラス プロパティの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Parameterization
プロパティに ParameterProperty
で指定されたプロパティ名が少なくとも 1 つ含まれていなければなりません。Test
要素がいずれも一致するプロパティ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
ParameterName
— パラメーター名
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テストで使用されるパラメーターの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。MATLAB は、パラメーターを定義するテスト クラス プロパティに基づいてパラメーター名を生成します。
プロパティ値が cell 配列である場合、MATLAB は、cell 配列の要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。
プロパティ値が構造体である場合、MATLAB はパラメーター名を構造体フィールドから生成します。
引数 ParameterName
はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Parameterization
プロパティに ParameterName
によって指定されたパラメーター名が少なくとも 1 つ含まれていなければなりません。Test
要素がいずれも一致するパラメーター名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
ProcedureName
— テスト プロシージャの名前
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テスト プロシージャの名前。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の ProcedureName
プロパティが ProcedureName
によって指定されたプロシージャ名の 1 つと一致しなければなりません。Test
要素がいずれも一致するプロシージャ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
クラスベースのテストでは、テスト プロシージャの名前はテストを含む Test
メソッドの名前です。関数ベースのテストでは、テストを含むローカル関数の名前です。スクリプトベースのテストでは、テスト セクション タイトルから生成された名前です。テスト スイート要素の名前とは異なり、テスト プロシージャの名前にパッケージ名、ファイル名、パラメーター化に関する情報は含まれません。
Superclass
— テスト クラスの派生元であるクラスの名前
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テスト クラスの派生元であるクラスの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の TestClass
プロパティが Superclass
によって指定されたクラスの 1 つから派生するテスト クラスを指していなければなりません。Test
要素がいずれもクラスに一致しない場合、空のテスト スイートが返されます。
Tag
— タグの名前
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テストで使用されるタグの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Tags
プロパティに Tag
によって指定されたタグ名が少なくとも 1 つ含まれていなければなりません。Test
要素がいずれも一致するタグ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
Strict
— 厳密なチェックを適用するかどうか
false
または 0
(既定値) | true
または 1
テストの実行時に厳密なチェックを適用するかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。たとえば、テストで警告が発行されると、フレームワークで検定エラーが生成されます。
UseParallel
— テストを並列実行するかどうか
false
または 0
(既定値) | true
または 1
テストを並列実行するかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。
既定では runtests
はテストを逐次実行します。UseParallel
を true
として指定すると、次の条件が満たされている場合、runtests
はテスト スイートをグループに分けて各グループを並列実行します。
Parallel Computing Toolbox がインストールされている。
開いている並列プールが存在するか、[並列基本設定] でプールの自動作成が有効にされている。
そうでない場合、runtests
は UseParallel
の値に関係なくテストを逐次的に実行します。
テストの並列実行は他のオプションと互換性がない場合があります。たとえば、UseParallel
と Debug
の両方が true
として指定された場合、テストは逐次発生します。テストを並列実行する場合、テスト フレームワークによって、グループの順序と数、あるいは各グループに含められるテストが異なることがあります。
Debug
— デバッグ機能を適用するかどうか
false
または 0
(既定値) | true
または 1
テストの実行時にデバッグ機能を適用するかどうか。数値または logical 0
(false
) または 1
(true
) として指定します。たとえば、テストの失敗が発生した場合、フレームワークはテストの実行を一時停止し、デバッグ モードになります。
OutputDetail
— 表示するイベントの詳細レベル
0 | 1 | 2 | 3 | 4 | matlab.automation.Verbosity
列挙
イベント詳細の表示レベル。0 ~ 4 の整数値、または matlab.automation.Verbosity
列挙オブジェクトとして指定します。整数値は matlab.automation.Verbosity
列挙のメンバーに対応します。
関数 runtests
は、失敗し、ログが作成されているイベントを OutputDetail
で指定された詳細情報とともに表示します。既定では、runtests
は失敗したイベントとログが作成されたイベントを matlab.automation.Verbosity.Detailed
レベル (レベル 3) で表示し、テスト実行の進行状況を matlab.automation.Verbosity.Concise
レベル (レベル 2) で表示します。
数値表現 | 列挙型メンバー名 | 詳細レベルの説明 |
---|---|---|
0 | None | 情報なし |
1 | Terse | 最小限の情報 |
2 | Concise | 中程度の情報量 |
3 | Detailed | ある程度の補足的な情報 |
4 | Verbose | 多くの補足的な情報 |
LoggingLevel
— 診断ログの最大詳細レベル
1 (既定値) | 0 | 2 | 3 | 4 | matlab.automation.Verbosity
列挙
テスト実行用に含まれる診断ログの最大詳細レベル。0 ~ 4 の整数値、または matlab.automation.Verbosity
列挙オブジェクトとして指定します。関数 runtests
は、このレベル以下でログが作成された診断情報を含めます。整数値は matlab.automation.Verbosity
列挙のメンバーに対応します。
既定では、runtests
は matlab.automation.Verbosity.Terse
レベル (レベル 1) でログが作成された診断情報を含めます。診断ログを除外するには、LoggingLevel
を Verbosity.None
(レベル 0) に指定します。
診断ログとは、log (TestCase)
メソッドまたは log (Fixture)
メソッドの呼び出しによってテスト フレームワークに送る診断です。
数値表現 | 列挙型メンバー名 | 詳細レベルの説明 |
---|---|---|
0 | None | 情報なし |
1 | Terse | 最小限の情報 |
2 | Concise | 中程度の情報量 |
3 | Detailed | ある程度の補足的な情報 |
4 | Verbose | 多くの補足的な情報 |
ReportCoverageFor
— コード カバレッジ解析用のソース ファイルおよびフォルダーの名前
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
コード カバレッジ解析用のソース ファイルおよびフォルダーの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。相対パスを指定する場合、そのパスは現在のフォルダー内になければなりません。それ以外の場合、絶対パスを指定する必要があります。フォルダーのパス、または拡張子が .m
、.mlx
、または .mlapp
のファイルのパスを指定できます。
この引数を指定した場合、関数はテストを実行し、指定したソース コードの HTML コード カバレッジ レポートを生成します。このレポートでは、テストによって実行されたソース コードの部分が示されます。ReportCoverageFor
に加えて coverageResults
出力引数 (R2023b 以降)を指定した場合、関数は HTML コード カバレッジ レポートを生成するだけでなく、カバレッジ結果へのプログラムによるアクセスも提供します。
例: "ReportCoverageFor",pwd
例: "ReportCoverageFor",["myFile.m" "myFolder"]
例: "ReportCoverageFor",["folderA" "C:\work\folderB"]
GenerateBaselines
— ベースライン データを作成するのか更新するのか
false
または 0
(既定値) | true
または 1
特定の検定メソッドによるテストで使用される MAT ファイルを作成するのか更新するのか。数値または logical 0
(false
) または 1
(true
) として指定します。GenerateBaselines
を使用するには、Simulink® Test がインストールされていなければなりません。
この引数を true
と指定すると、テストでは sltest.TestCase
(Simulink Test) クラスのこれらの検定メソッドの 1 つを使用しなければなりません。
verifySignalsMatch
(たとえば、testCase.verifySignalsMatch(actVal,"myBaseline.mat")
)assumeSignalsMatch
assertSignalsMatch
fatalAssertSignalsMatch
詳細については、Using MATLAB-Based Simulink Tests in the Test Manager (Simulink Test)を参照してください。
出力引数
testResults
— テスト結果
matlab.unittest.TestResult
オブジェクトの行ベクトル
テスト結果。matlab.unittest.TestResult
オブジェクトの行ベクトルとして返されます。ベクトルの各要素は、実行されたテストの 1 つに関する情報を提供します。
coverageResults
— カバレッジの結果
matlab.coverage.Result
オブジェクトの列ベクトル
R2023b 以降
カバレッジの結果。matlab.coverage.Result
オブジェクトの列ベクトルとして返されます。ベクトルの各要素は、テストでカバーされたソース コード内のファイルの 1 つに関する情報を提供します。
ソース コードのコード カバレッジ解析の結果にプログラムによってアクセスするには、名前と値の引数 ReportCoverageFor
とともにこの引数を使用します。
ヒント
共有テスト フィクスチャをテストで使用し、関数
runtests
への入力を string 配列または文字ベクトルの cell 配列で指定する場合、テスト フレームワークは、共有フィクスチャのセットアップと破棄の操作を減らすために配列を並べ替えます。結果として、テストは入力配列内の要素の順序とは異なる順序で実行される可能性があります。詳細については、sortByFixtures
を参照してください。リモート並列プール (MATLAB Parallel Server™ および Parallel Computing Toolbox が必要) でテストを実行すると、MATLAB はまずテストが含まれているローカル フォルダーをリモート ワーカーにコピーします。このステップに伴うオーバーヘッドを最小化するために、必ず、これらのフォルダーにはテストに関連したファイルのみが含まれているようにしてください。
拡張機能
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
テストを並列実行するには、名前と値の引数 UseParallel
を true
として指定します。
並列計算の一般情報の詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2013b で導入R2023b: コード カバレッジの結果へのプログラムによるアクセス
ソース コードのコード カバレッジ解析の結果にプログラムによってアクセスするには、名前と値の引数 ReportCoverageFor
を使用する際に 2 番目の出力引数を指定します。例については、コード カバレッジ情報の取得を参照してください。
R2023a: ソース コードの依存関係によるテスト スイートのフィルター処理
指定したソース コードへのテスト ファイルの依存関係でテスト スイートをフィルター処理できます。名前と値の引数 DependsOn
(MATLAB Test が必要) を使用してソース ファイルおよびフォルダーを指定します。
R2023a: 要件セットを検証するテストの実行
Requirements Toolbox™ と MATLAB Test がインストールされている場合、関数 runtests
を使用して、要件セットを検証するテストを実行できます。テストを実行するには、1 つ以上の要件セット ファイルを string スカラーまたは string ベクトルとして指定します。たとえば、results = runtests("myRequirementSet.slreqx")
は、指定された要件セットを検証するテストを実行します。
R2022b: 無効なテスト ファイルに対して実行するアクションの指定
フォルダーまたはパッケージ内で無効なテスト ファイルが見つかった場合にテスト フレームワークで警告を発行するかエラーをスローするかを指定するには、名前と値の引数 InvalidFileFoundAction
を使用します。
R2022b: cell 配列からよりわかりやすいパラメーター名を生成
空でない cell 配列をパラメーター化プロパティに代入すると、テスト フレームワークは cell 配列の要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。以前のリリースでは、プロパティ値が文字ベクトルの cell 配列である場合、フレームワークは cell 配列の値からパラメーター名を生成します。それ以外の場合、フレームワークはパラメーター名を value1
、value2
、…、valueN
として指定します。
コードでパラメーター名を使用してテスト スイートを作成したり、フィルター処理したりする場合は、古いパラメーター名をわかりやすいパラメーター名に置き換えてください。たとえば、suite = testsuite(pwd,"ParameterName","value1")
の value1
をわかりやすいパラメーター名に置き換えて更新します。
R2022a: IncludeSubfolders
はフォルダーとパッケージを同様に処理
名前と値の引数 IncludeSubfolders
はフォルダーとパッケージを同様に扱います。たとえば、runtests(pwd,IncludeSubfolders=true)
は、現在のフォルダーおよび、パッケージ フォルダーを含めた任意のサブフォルダー内にあるすべてのテストを実行します。従来のリリースでは、IncludeSubfolders
はパッケージフォルダーを無視します。
R2021b: runtests
はテスト プロシージャを定義しないプロジェクト ファイルを無視
関数 runtests
は、テスト プロシージャを定義しない MATLAB プロジェクト内のファイルをすべて無視します。たとえば、抽象 TestCase
クラス定義ファイルに Test
の分類ラベルが付けられている場合、それは無視されます。以前のリリースでは、具象テスト ファイル以外のファイルに Test
の分類が使用されているプロジェクトで runtests
が呼び出されると、MATLAB でエラーが発生します。
R2021b: プロジェクト内のテストは Java 仮想マシン (JVM) ソフトウェアを使用しないと実行できない
MATLAB が Java® 仮想マシン (JVM™) ソフトウェアなしで実行されている場合、runtests
は MATLAB プロジェクト内のテストを実行できません。これは、JVM ソフトウェアを使用しないとプロジェクトを開けないからです。以前のリリースでは、JVM ソフトウェアを使用せずに MATLAB を実行した場合、runtests
はプロジェクト内のテスト ファイルからスイートを作成してスイートを実行します。
R2021a: スレッド ベースのプールでのテストの並列実行
スレッド ワーカーの並列プールを起動してから関数 runtests
の呼び出しで名前と値の引数 UseParallel
を指定して、スレッドベースのプール (Parallel Computing Toolbox が必要) でテストを実行できます。
スレッドベースのプールで runtests
を使用して実行するテストには、次の制限が適用されます。
テストとソース コードはスレッド ワーカーでサポートされる機能のみを使用しなければなりません。スレッドベース環境の制限の詳細については、スレッドベースの環境またはプロセスベースの環境の選択 (Parallel Computing Toolbox)を参照してください。
テスト内容を定義するフォルダーは MATLAB 検索パス上になければなりません。
テスト名は、クラスまたは関数の名前を使用してファイル拡張子なしで指定する必要があります。
テスト アーティファクトの保存はスレッドベースのプールでサポートされません。
Simulink はスレッドベースの環境でサポートされません。したがって、Simulink Test を使用して作成されたテストはスレッドベースのプールで実行できません。
R2020b: クラスターおよびクラウドでのテストの並列実行
クラスターおよびクラウド (MATLAB Parallel Server および Parallel Computing Toolbox が必要) でテストを並列実行できます。リモート並列プールでテストを実行するには、名前と値の引数 UseParallel
を指定して関数 runtests
を呼び出します。
R2020b: スタンドアロン アプリケーションでのテストの並列実行
テストの並列実行をサポートするスタンドアロン アプリケーションを作成できます (MATLAB Compiler™ および Parallel Computing Toolbox が必要)。MATLAB Compiler が、テストの並列実行に必要なすべてのコンポーネントの位置を特定してパッケージ化できるようにするために、命令 %#function parallel.Pool
をコードで使用します。詳細については、MATLAB ユニット テストのコンパイルを参照してください。
R2020b: ベースライン データの作成または更新
特定の検定メソッドによるテストで使用される MAT ファイルを作成または更新するには、名前と値の引数 GenerateBaselines
を使用します。GenerateBaselines
を使用するには、Simulink Test がインストールされていなければなりません。
R2019a: MATLAB プロジェクト内のテストの実行
現在のフォルダーがプロジェクトのルート フォルダーであるか、プロジェクトのルート フォルダーへのパスを関数 runtests
に渡した場合、関数は、Test
の分類ラベルが付けられた、指定されたプロジェクトに含まれるすべてのテスト ファイルを実行します。
R2019a: 参照プロジェクトのテストの実行
参照プロジェクトのテストを実行するには、名前と値の引数 IncludeReferencedProjects
を使用します。
R2019a: HTML コード カバレッジ レポートの生成
コード カバレッジ レポートに含めるソース コードを指定するには、名前と値の引数 ReportCoverageFor
を使用します。
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)