matlab.unittest.TestSuite.fromFolder
クラス: matlab.unittest.TestSuite
名前空間: matlab.unittest
フォルダー内のテストからテスト スイートを作成する
構文
説明
suite = matlab.unittest.TestSuite.fromFolder(
は、指定したフォルダー内のテストからテスト スイートを作成し、テスト スイートを folder
)matlab.unittest.TestSuite
配列として返します。
テスト スイートを実行するために、テスト フレームワークは現在のフォルダーを、テスト内容を定義するフォルダーに変更し、テストを実行する間、そのフォルダーをパスに追加します。
suite = matlab.unittest.TestSuite.fromFolder(___,
は、前述の構文の入力引数の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name,Value
)suite = matlab.unittest.TestSuite.fromFolder(pwd,"IncludingSubfolders",true)
は、現在のフォルダーおよびそのすべてのサブフォルダー内にあるテストからテスト スイートを作成します。
入力引数
テストが含まれているフォルダーの名前。string スカラーまたは文字ベクトルとして指定します。相対パスを指定する場合、そのパスは現在のフォルダー内になければなりません。それ以外の場合、絶対パスを指定する必要があります。
例: pwd
例: "myFolder"
例: "C:\work\myFolder"
セレクター。matlab.unittest.selectors.Selector
オブジェクトとして指定します。
例: matlab.unittest.selectors.HasTag
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: suite = matlab.unittest.TestSuite.fromFolder(pwd,IncludingSubfolders=true)
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: suite = matlab.unittest.TestSuite.fromFolder(pwd,"IncludingSubfolders",true)
folder
のサブフォルダー内のテストを含めるオプション。数値または logical 0
(false
) または 1
(true
) として指定します。既定では、メソッドはサブフォルダー内のテストを含めません。
folder
内の無効なテスト ファイルに対して実行するアクション。次の値のいずれかとして指定します。
"warn"
— メソッドはfolder
内の無効なテスト ファイルのそれぞれについて警告を発行し、有効なファイルからテスト スイートを作成します。"error"
— メソッドはfolder
内で無効なテスト ファイルを見つけるとエラーをスローします。
無効なテスト ファイルは、フレームワークでテスト スイートの生成に使用できないテスト ファイルです。たとえば、構文エラーを含むテスト ファイル、ローカル関数が欠落した関数ベースのテスト ファイル、未定義のパラメーター化プロパティが渡された Test
メソッドを含むファイルなどが含まれます。
テストで使用する外部パラメーター。matlab.unittest.parameters.Parameter
オブジェクトの配列として指定します。この引数を使用して、パラメーター化されたテスト内の既存のパラメーターの代わりに外部パラメーターを指定します。詳細については、パラメーター化されたテストでの外部パラメーターの使用を参照してください。
テスト ファイルを含むベース フォルダーの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素が BaseFolder
によって指定されたベース フォルダーの 1 つに含まれていなければなりません。Test
要素がいずれもベース フォルダーと一致しない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
名前空間で定義したテスト ファイルでは、ベース フォルダーは最上位の名前空間フォルダーの親です。
ソース コードが含まれているファイルおよびフォルダーの名前。string ベクトル、文字ベクトル、または文字ベクトルの cell ベクトルとして指定します。この引数は、指定されたソース コードに依存するテストのみを含めてテスト スイートをフィルター処理します。いずれのテストもソース コードに依存していない場合は、空のテスト スイートが返されます。
指定する値は、1 つ以上の既存のファイルを表している必要があります。フォルダーを指定した場合は、そのフォルダー内のファイルのパスがフレームワークで抽出されます。
DependsOn
を使用するには、MATLAB® Test™ のライセンスが必要です。ソース コードの依存関係によるテストの選択の詳細については、matlabtest.selectors.DependsOn
(MATLAB Test) を参照してください。
例: DependsOn=["myFile.m" "myFolder"]
例: DependsOn=["folderA" "C:\work\folderB"]
テストの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Name
プロパティが Name
によって指定された名前の 1 つと一致しなければなりません。Test
要素がいずれも一致する名前をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
特定のテスト ファイルにおいて、テストの名前はテスト内容のうち実行可能な最小部分を一意に識別します。テストの名前には、名前空間名、ファイル名 (拡張子を除く)、プロシージャ名、およびパラメーター化に関する情報が含まれます。
テストで使用されるパラメーターを定義するテスト クラス プロパティの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Parameterization
プロパティに ParameterProperty
で指定されたプロパティ名が少なくとも 1 つ含まれていなければなりません。Test
要素がいずれも一致するプロパティ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
テストで使用されるパラメーターの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。MATLAB は、パラメーターを定義するテスト クラス プロパティに基づいてパラメーター名を生成します。以下に例を示します。
プロパティ値が cell 配列である場合、MATLAB は、cell 配列の要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。
プロパティ値が構造体である場合、MATLAB はパラメーター名を構造体フィールドから生成します。
引数 ParameterName
はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Parameterization
プロパティに ParameterName
によって指定されたパラメーター名が少なくとも 1 つ含まれていなければなりません。Test
要素がいずれも一致するパラメーター名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
テスト プロシージャの名前。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の ProcedureName
プロパティが ProcedureName
によって指定されたプロシージャ名の 1 つと一致しなければなりません。Test
要素がいずれも一致するプロシージャ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
クラスベースのテストでは、テスト プロシージャの名前はテストを含む Test
メソッドの名前です。関数ベースのテストでは、テストを含むローカル関数の名前です。スクリプトベースのテストでは、テスト セクション タイトルから生成された名前です。テスト スイート要素の名前と異なり、テスト プロシージャの名前には名前空間名、ファイル名、パラメーター化に関する情報は含まれません。
テスト クラスの派生元であるクラスの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の TestClass
プロパティが Superclass
によって指定されたクラスの 1 つから派生するテスト クラスを指していなければなりません。Test
要素がいずれもクラスに一致しない場合、空のテスト スイートが返されます。
テストで使用されるタグの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test
要素の Tags
プロパティに Tag
によって指定されたタグ名が少なくとも 1 つ含まれていなければなりません。Test
要素がいずれも一致するタグ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*
) を使用すると任意の数の文字と一致します。疑問符 (?
) を使用すると単一の文字と一致します。
例
静的メソッド fromFolder
を使用して、フォルダー内のテストからテスト スイートを作成します。
この例では、myFolder
という名前のフォルダーが現在のフォルダーに存在していることを前提としています。フォルダーが存在しない場合は作成します。
[~,~] = mkdir("myFolder")
myFolder
フォルダー内の add5.m
という名前のファイルで関数 add5
を作成します。この関数は、数値入力を受け入れて 5 だけインクリメントします。非数値入力を指定して呼び出すと、関数はエラーをスローします。
function y = add5(x) % add5 - Increment input by 5 if ~isa(x,"numeric") error("add5:InputMustBeNumeric","Input must be numeric.") end y = x + 5; end
関数 add5
をテストするには、myFolder
フォルダー内の Add5Test.m
という名前のファイルで Add5Test
クラスを作成します。このクラスは、数値入力および非数値入力について関数をテストします。
classdef Add5Test < matlab.unittest.TestCase properties (TestParameter) type = {'double','single','int8','int32'}; end methods (Test) function numericInput(testCase,type) actual = add5(cast(1,type)); testCase.verifyClass(actual,type) end function nonnumericInput(testCase) testCase.verifyError(@() add5("0"),"add5:InputMustBeNumeric") end end end
この例で使用するクラスをインポートします。
import matlab.unittest.TestSuite import matlab.unittest.selectors.HasParameter
現在のフォルダーが myFolder
の親フォルダーであることを確認します。myFolder
フォルダー内のテストからテスト スイートを作成し、テスト名を表示します。スイートには Add5Test
クラスで定義されているテストが含まれています。
suite = TestSuite.fromFolder("myFolder");
disp({suite.Name}')
{'Add5Test/numericInput(type=double)'} {'Add5Test/numericInput(type=single)'} {'Add5Test/numericInput(type=int8)' } {'Add5Test/numericInput(type=int32)' } {'Add5Test/nonnumericInput' }
myFolder
フォルダー内のパラメーター化されたテストのみを含むテスト スイートを作成します。
suite1 = TestSuite.fromFolder("myFolder",HasParameter);
disp({suite1.Name}')
{'Add5Test/numericInput(type=double)'} {'Add5Test/numericInput(type=single)'} {'Add5Test/numericInput(type=int8)' } {'Add5Test/numericInput(type=int32)' }
名前に "nonnumeric"
が含まれている、myFolder
フォルダー内のテストのみを含むテスト スイートを作成します。
suite2 = TestSuite.fromFolder("myFolder","Name","*nonnumeric*"); disp({suite2.Name}')
{'Add5Test/nonnumericInput'}
バージョン履歴
R2013a で導入名前と値の引数 DependsOn
または matlabtest.selectors.DependsOn
クラスを使用して関数ベースまたはクラスベースのテストを選択するときに (MATLAB Test が必要)、指定したソース コードに依存するテストがより正確にメソッドで選択されるようになりました。ソース コードに依存する個別のテストをテスト ファイル内で判別できる場合、メソッドは依存するテストのみを選択して残りは除外します。それ以外の場合、メソッドはテスト ファイル内のすべてのテストを含めます。
以前のリリースでは、このメソッドは、指定されたソース コードにテスト ファイルが依存している場合、そのソース コードに依存していないテストを除外することなく、テスト ファイル内にあるすべてのテストを含めます。
MATLAB Test のライセンスがある場合、名前と値の引数 DependsOn
または matlabtest.selectors.DependsOn
クラスを使用して任意のタイプのソース ファイルを指定できます。以前のリリースでは、拡張子が .m
、.p
、.mlx
、.mlapp
、.mat
、または .slx
のファイルのみ指定できます。
MATLAB Test のライセンスがある場合、指定したソース コードへのテスト ファイルの依存関係でテスト スイートをフィルター処理できます。名前と値の引数 DependsOn
または matlabtest.selectors.DependsOn
クラスを使用してソース ファイルおよびフォルダーを指定します。
フォルダー内で無効なテスト ファイルが見つかった場合にテスト フレームワークで警告を発行するかエラーをスローするかを指定するには、名前と値の引数 InvalidFileFoundAction
を使用します。
空でない cell 配列をパラメーター化プロパティに代入すると、テスト フレームワークは cell 配列の要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。以前のリリースでは、プロパティ値が文字ベクトルの cell 配列である場合、フレームワークは cell 配列の値からパラメーター名を生成します。それ以外の場合、フレームワークはパラメーター名を value1
、value2
、…、valueN
として指定します。
コードでパラメーター名を使用してテスト スイートを作成したり、フィルター処理したりする場合は、古いパラメーター名をわかりやすいパラメーター名に置き換えてください。たとえば、suite = testsuite(pwd,"ParameterName","value1")
の value1
をわかりやすいパラメーター名に置き換えて更新します。
matlab.unittest.TestSuite.fromFolder
メソッドはフォルダーと名前空間を同じように扱い、テスト スイートの作成時に名前空間フォルダー内で定義されたテストを組み込みます。たとえば、suite = matlab.unittest.TestSuite.fromFolder(pwd,IncludingSubfolders=true)
は、現在のフォルダーおよび、名前空間フォルダーを含めた任意のサブフォルダー内にあるすべてのテスト ファイルからスイートを作成します。以前のリリースでは、このメソッドは名前空間フォルダーおよびサブフォルダー内に定義されているテストを無視します。
この動作の変更は、テストが含まれているフォルダーに対して関数 testsuite
、runtests
、および runperf
が処理を実行する場合にこれらの関数にも適用されます。フォルダーと名前空間の扱いが一貫したものになったため、フォルダーおよびそのサブフォルダー内のすべてのテスト ファイルからのスイートの作成がさらに便利になり、フォルダー構造と独立したものになりました。
名前空間内で定義されているテストを除外するには、fromFolder
によって作成または返されるスイートをフィルター処理します。たとえば、名前にドットを含まない (名前空間を参照しない) テストで構成されるフィルター処理されたテスト スイートを作成します。
import matlab.unittest.TestSuite import matlab.unittest.selectors.HasName import matlab.unittest.constraints.ContainsSubstring suite = TestSuite.fromFolder(pwd,HasName(~ContainsSubstring(".")), ... IncludingSubfolders=true);
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)