Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

matlab.unittest.TestSuite.fromFolder

クラス: matlab.unittest.TestSuite
名前空間: matlab.unittest

フォルダー内のテストからテスト スイートを作成する

説明

suite = matlab.unittest.TestSuite.fromFolder(folder) は、指定したフォルダー内のテストからテスト スイートを作成し、テスト スイートを matlab.unittest.TestSuite 配列として返します。

テスト スイートを実行するために、テスト フレームワークは現在のフォルダーを、テスト内容を定義するフォルダーに変更し、テストを実行する間、そのフォルダーをパスに追加します。

suite = matlab.unittest.TestSuite.fromFolder(folder,selector) には、指定したセレクターの条件を満たしているテストのみが含まれます。

suite = matlab.unittest.TestSuite.fromFolder(___,Name,Value) は、前述の構文の入力引数の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、suite = matlab.unittest.TestSuite.fromFolder(pwd,"IncludingSubfolders",true) は、現在のフォルダーおよびそのすべてのサブフォルダー内にあるテストからテスト スイートを作成します。

入力引数

すべて展開する

テストが含まれているフォルダーの名前。string スカラーまたは文字ベクトルとして指定します。相対パスを指定する場合、そのパスは現在のフォルダー内になければなりません。それ以外の場合、絶対パスを指定する必要があります。

例: pwd

例: "myFolder"

例: "C:\work\myFolder"

セレクター。matlab.unittest.selectors パッケージのクラスのインスタンスとして指定します。MATLAB® Test™ のライセンスがある場合、selectormatlabtest.selectors.DependsOn インスタンスとして指定することもできます。

例: 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" または "error" として指定します。

  • "warn" — メソッドは folder 内の無効なテスト ファイルのそれぞれについて警告を発行し、有効なファイルからテスト スイートを作成します。

  • "error" — メソッドは folder 内で無効なテスト ファイルを見つけるとエラーをスローします。

無効なテスト ファイルは、フレームワークでテスト スイートの生成に使用できないテスト ファイルです。たとえば、構文エラーを含むテスト ファイル、ローカル関数が欠落した関数ベースのテスト ファイル、未定義のパラメーター化プロパティが渡された Test メソッドを含むファイルなどが含まれます。

テストで使用する外部パラメーター。matlab.unittest.parameters.Parameter オブジェクトの配列として指定します。この引数を使用して、パラメーター化されたテスト内の既存のパラメーターの代わりに外部パラメーターを指定します。詳細については、パラメーター化されたテストでの外部パラメーターの使用を参照してください。

テスト ファイルを含むベース フォルダーの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数はテスト スイートをフィルター処理します。テスト フレームワークがフィルター処理されたスイートにテストを含めるためには、Test 要素が BaseFolder によって指定されたベース フォルダーの 1 つに含まれていなければなりません。Test 要素がいずれもベース フォルダーと一致しない場合、空のテスト スイートが返されます。ワイルドカード文字 (*) を使用すると任意の数の文字と一致します。疑問符 (?) を使用すると単一の文字と一致します。

パッケージで定義したテスト ファイルでは、ベース フォルダーは最上位パッケージ フォルダーの親です。

ソース コードが含まれているファイルおよびフォルダーの名前。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"]

テストの名前。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 要素がいずれも一致するタグ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 (*) を使用すると任意の数の文字と一致します。疑問符 (?) を使用すると単一の文字と一致します。

属性

Statictrue

メソッドの属性の詳細については、メソッドの属性を参照してください。

すべて展開する

静的メソッド 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 で導入

すべて展開する