このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
testsuite
テスト スイートを作成
説明
suite = testsuite
は、現在のフォルダーからテスト スイートを作成し、そのスイートを配列 TestSuite
として返します。
testsuite
で作成したテスト スイートを実行するには、matlab.unittest.TestSuite
、matlab.unittest.TestRunner
または matlab.perftest.TimeExperiment
の run
メソッドを使用します。
suite = testsuite(
は、指定された一連のテストからスイートを作成します。tests
)
suite = testsuite(___,
は、1 つ以上の名前と値の引数で指定された追加オプションを使用してテスト スイートを作成します。Name,Value
)
例
作業フォルダーのテスト スイート
現在の作業フォルダーにフォルダー myExample
を作成し、それを現在の作業フォルダーに指定して、テストをいくつか作成します。
myExample
フォルダーに、スクリプトベースのテスト onesTest.m
を作成します。
%% Test double class expClass = 'double'; act = ones; assert(isa(act,expClass)) %% Test single class expClass = 'single'; act = ones('single'); assert(isa(act,expClass)) %% Test uint16 class expClass = 'uint16'; act = ones('uint16'); assert(isa(act,expClass)) %% Test size expSize = [7 13]; act = ones([7 13]); assert(isequal(size(act),expSize)) %% Test values act = ones(42); assert(unique(act) == 1)
myExample
フォルダーに、関数ベースのテスト eyeTest.m
を作成します。
function tests = eyeTest tests = functiontests(localfunctions); function doubleClassTest(testCase) actValue = eye; verifyClass(testCase,actValue,'double') function singleClassTest(testCase) actValue = eye('single'); verifyClass(testCase,actValue,'single') function uint16ClassTest(testCase) actValue = eye('uint16'); verifyClass(testCase,actValue,'uint16') function sizeTest(testCase) expSize = [7 13]; actValue = eye(expSize); verifySize(testCase,actValue,expSize); function valueTest(testCase) actValue = eye(42); verifyEqual(testCase,unique(diag(actValue)),1) % diagonal are 1s verifyEqual(testCase,unique(triu(actValue,1)),0) % upper tri vals are 0 verifyEqual(testCase,unique(tril(actValue,-1)),0) % lower tri vals are 0
現在のフォルダーのすべてのテストからテスト スイートを作成します。
suite = testsuite
suite = 1×10 Test array with properties: Name BaseFolder ProcedureName SharedTestFixtures Parameterization Tags Tests Include: 0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
フォルダーにあるテストが onesTest
と eyesTest
のみの場合、MATLAB® によって 10 個のテストからなるスイートが 1 つ作成されます。
suite
内のテストの名前を表示します。
{suite.Name}'
ans = 'eyeTest/doubleClassTest' 'eyeTest/singleClassTest' 'eyeTest/uint16ClassTest' 'eyeTest/sizeTest' 'eyeTest/valueTest' 'onesTest/TestDoubleClass' 'onesTest/TestSingleClass' 'onesTest/TestUint16Class' 'onesTest/TestSize' 'onesTest/TestValues'
eyeTest
のすべてのテストからテスト スイートを作成します。
suite2 = testsuite('eyeTest')
suite2 = 1×5 Test array with properties: Name BaseFolder ProcedureName SharedTestFixtures Parameterization Tags Tests Include: 0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
選択したテストのテスト スイート
作業フォルダーに、クラスベースのテスト testZeros.m
を作成します。このクラスには 5 つのテスト メソッドが含まれています。
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 要素です。
テスト名に 'Default'
を含むテスト要素からテスト スイートを作成します。
suite = testsuite('testZeros','Name','*Default*')
suite = 1x3 Test array with properties: Name ProcedureName TestClass BaseFolder Parameterization SharedTestFixtures Tags Tests Include: 0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
outSize
パラメーター プロパティを使用するテスト要素からテスト スイートを作成します。
suite = testsuite('testZeros','ParameterProperty','outSize')
suite = 1x8 Test array with properties: Name ProcedureName TestClass BaseFolder Parameterization SharedTestFixtures Tags Tests Include: 5 Unique Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
テスト スイートには outSize
パラメーター プロパティを使用する 8 つのテストが含まれています。testClass
メソッドから 6 つ、testSize
メソッドから 2 つです。
入力引数
tests
— テスト
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テスト。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数を使用してテスト内容を指定します。たとえば、テスト ファイル、テスト クラス、テスト ファイルを含むフォルダー、テスト クラスを含む名前空間、テスト ファイルを含むプロジェクト フォルダーを指定できます。
例: testsuite("myTestFile.m")
例: testsuite(["myTestFile/test1" "myTestFile/test3"])
例: testsuite("myNamespace.MyTestClass")
例: testsuite(pwd)
例: testsuite({'myNamespace.MyTestClass','myTestFile.m',pwd,'myNamespace.innerNamespace'})
例: testsuite("C:\projects\project1")
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
例: suite = testsuite(tests,Name="productA_*")
は、名前が "productA_"
で始まる tests
からテスト スイートを作成します。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: suite = testsuite(tests,"Name","productA_*")
は、名前が "productA_"
で始まる tests
からテスト スイートを作成します。
IncludeSubfolders
— サブフォルダー内のテストを含めるオプション
false
または 0
(既定値) | true
または 1
サブフォルダー内のテストをスイートに含めるオプション。数値または logical 0
(false
) または 1
(true
) として指定します。既定では、フレームワークは指定されたフォルダーのテストからスイートを作成し、サブフォルダーは使用しません。
IncludeInnerNamespaces
— 内側の名前空間内のテストを含めるオプション
false
または 0
(既定値) | true
または 1
内側の名前空間内のテストをスイートに含めるオプション。数値または logical 0
(false
) または 1
(true
) として指定します。既定では、フレームワークは指定された名前空間内のテストからスイートを作成しますが、その内側の名前空間内のテストは使用しません。
IncludeReferencedProjects
— 参照プロジェクトのテストを含めるオプション
false
または 0
(既定値) | true
または 1
参照プロジェクトのテストを含めるオプション。数値または logical 0
(false
) または 1
(true
) として指定します。参照プロジェクトの詳細については、大規模なプロジェクトのコンポーネント化を参照してください。
InvalidFileFoundAction
— 無効なテスト ファイルに対して実行するアクション
"warn"
(既定値) | "error"
関数で処理するフォルダーまたは名前空間内の無効なテスト ファイルに対して実行するアクション。次の値のいずれかとして指定します。
"warn"
— 関数はフォルダーまたは名前空間内の無効なテスト ファイルのそれぞれについて警告を発行し、有効なファイルからテスト スイートを作成します。"error"
— 関数はフォルダーまたは名前空間内で無効なテスト ファイルを見つけるとエラーをスローします。
無効なテスト ファイルは、フレームワークでテスト スイートの生成に使用できないテスト ファイルです。たとえば、構文エラーを含むテスト ファイル、ローカル関数が欠落した関数ベースのテスト ファイル、未定義のパラメーター化プロパティが渡された Test
メソッドを含むファイルなどが含まれます。
BaseFolder
— ベース フォルダー名
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列
テスト ファイルを含むベース フォルダーの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素が BaseFolder
によって指定されたベース フォルダーの 1 つに含まれていなければなりません。Test
要素がいずれもベース フォルダーと一致しない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
名前空間で定義したテスト ファイルでは、ベース フォルダーは最上位の名前空間フォルダーの親です。
DependsOn
— ソース コードが含まれるファイルおよびフォルダーの名前
string ベクトル | 文字ベクトル | 文字ベクトルの cell ベクトル
ソース コードが含まれているファイルおよびフォルダーの名前。string ベクトル、文字ベクトル、または文字ベクトルの cell ベクトルとして指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理したスイートにテストを含めるには、テストを定義しているファイルが、指定したソース コードに依存している必要があります。テスト ファイルのいずれもソース コードに依存していない場合は、空のテスト スイートが返されます。
指定する値は、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
要素がいずれも一致するタグ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
詳細
MLDATX ファイルからのテスト スイートの作成
関数 testsuite
を使用して、MLDATX ファイルからテスト スイートを作成できます (Simulink® Test が必要です)。たとえば、suite = testsuite('myTestFile.mldatx')
は、ファイル myTestFile.mldatx
で指定されたテストからスイートを作成します。
MLDATX ファイルを指定すると、testsuite
は、ファイル内のすべてのテストを含むスイートを作成します。MLDATX ファイル内の特定のファイルからスイートを作成するように testsuite
に指示することはできません。
ヒント
テスト スイートを明示的に作成する必要がない場合は、テストの実行前に
runtests
またはrunperf
を使用して暗黙的にスイートを作成します。テスト スイートを明示的に作成する代替方法として、
matlab.unittest.TestSuite
メソッドを使用する方法があります。関数
testsuite
への入力を string 配列または文字ベクトルの cell 配列として指定する場合 (たとえば、suite = testsuite(["Test1","Test2"])
)、テスト フレームワークは、共有テスト フィクスチャのセットアップと破棄の操作を減らすために配列を並べ替えます。結果として、テストは入力配列内の要素の順序とは異なる順序で実行される可能性があります。テスト実行の順序を強制的に適用するには、
testsuite
を複数回呼び出してスイートを作成します。たとえば、Test1
で指定されるテストがTest2
で指定されるテストの前に実行されるようにするには、次の構文を使用します。suite = [testsuite("Test1") testsuite("Test2")]
バージョン履歴
R2016a で導入R2024a: 内側の名前空間を含めるために使用する名前と値の引数の名前が IncludeSubpackages
から IncludeInnerNamespaces
に変更
名前と値の引数 IncludeSubpackages
の名前が IncludeInnerNamespaces
になりました。動作は同じままで、コード内の既存の IncludeSubpackages
のインスタンスは引き続き想定どおりに機能します。IncludeSubpackages
への既存の参照のサポートを削除する予定はありません。
R2024a: ソース コードの依存関係でテスト スイートをフィルター処理するときに任意のタイプのソース ファイルを指定
MATLAB Test のライセンスがある場合、名前と値の引数 DependsOn
を使用して任意のタイプのソース ファイルを指定できます。以前のリリースでは、拡張子が .m
、.p
、.mlx
、.mlapp
、.mat
、または .slx
のファイルのみ指定できます。
R2023a: ソース コードの依存関係によるテスト スイートのフィルター処理
指定したソース コードへのテスト ファイルの依存関係でテスト スイートをフィルター処理できます。名前と値の引数 DependsOn
(MATLAB Test が必要) を使用してソース ファイルおよびフォルダーを指定します。
R2023a: 要件セットを検証するテストからのテスト スイートの作成
Requirements Toolbox™ と MATLAB Test がインストールされている場合、関数 testsuite
を使用して、要件セットを検証するテストからテスト スイートを作成できます。スイートを作成するには、1 つ以上の要件セット ファイルを string スカラーまたは string ベクトルとして指定します。たとえば、suite = testsuite("myRequirementSet.slreqx")
は、指定された要件セットを検証するテストのスイートを作成します。
R2022b: 無効なテスト ファイルに対して実行するアクションの指定
フォルダーまたは名前空間内で無効なテスト ファイルが見つかった場合にテスト フレームワークで警告を発行するかエラーをスローするかを指定するには、名前と値の引数 InvalidFileFoundAction
を使用します。
R2022b: cell 配列からよりわかりやすいパラメーター名を生成
空でない cell 配列をパラメーター化プロパティに代入すると、テスト フレームワークは cell 配列の要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。以前のリリースでは、プロパティ値が文字ベクトルの cell 配列である場合、フレームワークは cell 配列の値からパラメーター名を生成します。それ以外の場合、フレームワークはパラメーター名を value1
、value2
、…、valueN
として指定します。
コードでパラメーター名を使用してテスト スイートを作成したり、フィルター処理したりする場合は、古いパラメーター名をわかりやすいパラメーター名に置き換えてください。たとえば、suite = testsuite(pwd,"ParameterName","value1")
の value1
をわかりやすいパラメーター名に置き換えて更新します。
R2022a: IncludeSubfolders
はフォルダーと名前空間を同様に処理
名前と値の引数 IncludeSubfolders
はフォルダーと名前空間を同様に扱います。たとえば、suite = testsuite(pwd,IncludeSubfolders=true)
は、現在のフォルダーおよび、名前空間フォルダーを含めた任意のサブフォルダー内にあるすべてのテスト ファイルからスイートを作成します。従来のリリースでは、IncludeSubfolders
は名前空間フォルダーを無視します。
R2021b: testsuite
はテスト プロシージャを定義しないプロジェクト ファイルを無視
関数 testsuite
は、テスト プロシージャを定義しない MATLAB プロジェクト内のファイルをすべて無視します。たとえば、抽象 TestCase
クラス定義ファイルに Test
の分類ラベルが付けられている場合、それは無視されます。以前のリリースでは、具象テスト ファイル以外のファイルに Test
の分類が使用されているプロジェクトで testsuite
が呼び出されると、MATLAB でエラーが発生します。
R2021b: プロジェクトから作成したテスト スイートは Java 仮想マシン (JVM) ソフトウェアを使用しないと実行できない
Java® 仮想マシン (JVM®) ソフトウェアを使用せずに MATLAB を起動し、testsuite
を使用してプロジェクト内のテスト ファイルからスイートを作成する場合、この関数では matlab.unittest.TestSuite.fromProject
メソッドを使ってスイートが作成されます。そのテスト スイートを JVM ソフトウェアを使用せずに実行しようとすると、JVM ソフトウェアを使用しないとプロジェクトを開けないため MATLAB でエラーが発生します。以前のリリースでは、JVM ソフトウェアを使用せずに MATLAB を実行した場合、testsuite
で matlab.unittest.TestSuite.fromFolder
を使用してプロジェクト内のテスト ファイルからスイートが作成され、そのテスト スイートがテスト フレームワークで実行されます。
この動作の変更は、プロジェクト内のファイルとフォルダーに編成されたコードに対する関数 runtests
および runperf
の動作にも適用されます。
R2019a: MATLAB プロジェクト内のテストからのテスト スイートの作成
現在のフォルダーがプロジェクトのルート フォルダーであるか、プロジェクトのルート フォルダーへのパスを関数 testsuite
に渡した場合、関数は、Test
の分類ラベルが付けられた、指定されたプロジェクトに含まれるすべてのテスト ファイルからテスト スイートを作成します。
R2019a: 参照プロジェクトのテストを含める
テスト スイートに参照プロジェクトのテストを含めるには、名前と値の引数 IncludeReferencedProjects
を使用します。
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)