Main Content

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

matlab.unittest.TestSuite.fromFile

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

テスト ファイルからテスト スイートを作成する

説明

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

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

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

suite = matlab.unittest.TestSuite.fromFile(___,Name,Value) は、前述の構文の入力引数の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、suite = matlab.unittest.TestSuite.fromFile("myFile.m","Name","featureA_*") は、名前が "featureA_" で開始している、myFile.m 内のテストのみを含むテスト スイートを作成します。

入力引数

すべて展開する

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

例: "myFile.m"

例: "C:\work\myFile.m"

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

例: matlab.unittest.selectors.HasTag

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: suite = matlab.unittest.TestSuite.fromFile("myFile.m",Name="featureA_*")

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: suite = matlab.unittest.TestSuite.fromFile("myFile.m","Name","featureA_*")

テストで使用する外部パラメーター。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

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

すべて展開する

静的メソッド fromFile を使用して、テスト ファイルからテスト スイートを作成します。

現在のフォルダー内の ZerosTest.m という名前のファイルに、関数 zeros をテストする ZerosTest クラスを作成します。

classdef ZerosTest < matlab.unittest.TestCase
    properties (TestParameter)
        type = {'single','double','uint16'};
        size = struct("s2d",[3 3],"s3d",[2 5 4]);
    end
    
    methods (Test)
        function testClass(testCase,size,type)
            testCase.verifyClass(zeros(size,type),type)
        end
        
        function testSize(testCase,size)
            testCase.verifySize(zeros(size),size)
        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

この例で使用するクラスをインポートします。

import matlab.unittest.TestSuite
import matlab.unittest.selectors.HasParameter

ZerosTest.m ファイルからテスト スイートを作成し、テスト名を表示します。スイートには 11 個の Test 要素が含まれています。

suite = TestSuite.fromFile("ZerosTest.m");
disp({suite.Name}')
    {'ZerosTest/testClass(size=s2d,type=single)'}
    {'ZerosTest/testClass(size=s2d,type=double)'}
    {'ZerosTest/testClass(size=s2d,type=uint16)'}
    {'ZerosTest/testClass(size=s3d,type=single)'}
    {'ZerosTest/testClass(size=s3d,type=double)'}
    {'ZerosTest/testClass(size=s3d,type=uint16)'}
    {'ZerosTest/testSize(size=s2d)'             }
    {'ZerosTest/testSize(size=s3d)'             }
    {'ZerosTest/testDefaultClass'               }
    {'ZerosTest/testDefaultSize'                }
    {'ZerosTest/testDefaultValue'               }

ZerosTest.m ファイル内のパラメーター化されたテストのみを含むテスト スイートを作成します。

suite1 = TestSuite.fromFile("ZerosTest.m",HasParameter);
disp({suite1.Name}')
    {'ZerosTest/testClass(size=s2d,type=single)'}
    {'ZerosTest/testClass(size=s2d,type=double)'}
    {'ZerosTest/testClass(size=s2d,type=uint16)'}
    {'ZerosTest/testClass(size=s3d,type=single)'}
    {'ZerosTest/testClass(size=s3d,type=double)'}
    {'ZerosTest/testClass(size=s3d,type=uint16)'}
    {'ZerosTest/testSize(size=s2d)'             }
    {'ZerosTest/testSize(size=s3d)'             }

名前に "Class" が含まれている、ZerosTest.m ファイル内のテストのみを含むテスト スイートを作成します。

suite2 = TestSuite.fromFile("ZerosTest.m","Name","*Class*");
disp({suite2.Name}')
    {'ZerosTest/testClass(size=s2d,type=single)'}
    {'ZerosTest/testClass(size=s2d,type=double)'}
    {'ZerosTest/testClass(size=s2d,type=uint16)'}
    {'ZerosTest/testClass(size=s3d,type=single)'}
    {'ZerosTest/testClass(size=s3d,type=double)'}
    {'ZerosTest/testClass(size=s3d,type=uint16)'}
    {'ZerosTest/testDefaultClass'               }

バージョン履歴

R2013a で導入

すべて展開する