Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

matlab.unittest.TestSuite.fromMethod

クラス: matlab.unittest.TestSuite
パッケージ: matlab.unittest

単一のテスト メソッドから配列 TestSuite を作成

説明

suite = matlab.unittest.TestSuite.fromMethod(testClass,testMethod) は、配列 TestSuite を、testClass によって記述されたテスト クラスと、testMethod によって記述されたテスト メソッドから作成し、suite に返します。

suite = matlab.unittest.TestSuite.fromMethod(testClass,testMethod,s) は、セレクター s によって指定される条件を満たす testMethod 内のすべての Test メソッドから配列 TestSuite を作成します。

suite = matlab.unittest.TestSuite.fromMethod(___,Name,Value) は、配列 TestSuite を、1 つ以上の Name,Value のペアの引数で指定された追加オプションを使って作成します。この構文では、前述の構文の入力引数のいずれかを使用できます。

入力引数

testClass

テスト メソッドを記述するクラス。meta.class インスタンスとして指定します。matlab.unittest.TestCase から導出しなければなりません。

testMethod

テスト メソッド。meta.method インスタンスまたは名前によって、文字ベクトルまたは string スカラーとして指定します。メソッドは Test メソッド属性で定義しなければなりません。

s

matlab.unittest.selector パッケージのクラスのインスタンスとして指定されるセレクター。

名前と値の引数

BaseFolder

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

ExternalParameters

パラメーター化されたテストで使用するための matlab.unittest.parameters.Parameter インスタンスの配列。フレームワークでは、パラメーター化されたテスト内で定義される対応するパラメーターの代わりに、これらの外部パラメーターが使用されます。詳細については、パラメーター化されたテストでの外部パラメーターの使用を参照してください。

Name

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

ParameterProperty

テスト スイート要素で使用されるパラメーターを定義するテスト クラス プロパティの名前。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。この引数は、配列 TestSuite の要素をフィルター処理します。テスト フレームワークがスイートにテストを含めるためには、Test 要素の Parameterization プロパティに、ParameterProperty で指定されたプロパティ名が少なくとも 1 つ含まれていなければなりません。Test 要素がいずれも一致するプロパティ名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 * を使用すると、任意の数の文字と一致します。疑問符 ? を使用すると、単一の文字と一致します。

ParameterName

テスト スイート要素で使用されるパラメーターの名前。string 配列、文字ベクトルまたは文字ベクトルの cell 配列として指定します。MATLAB® は、パラメーターを定義するテスト クラス プロパティに基づいてパラメーター名を生成します。

  • プロパティ値が文字ベクトルの cell 配列である場合、MATLAB は、cell 配列の値からパラメーター名を生成します。それ以外の場合、MATLAB はパラメーター名を value1value2、…、valueN として指定します。

  • プロパティ値が構造体である場合、MATLAB はパラメーター名を構造体フィールドから生成します。

ParameterName 引数は、配列 TestSuite の要素をフィルター処理します。テスト フレームワークがスイートにテストを含めるためには、Test 要素の Parameterization プロパティに、ParameterName によって指定されたパラメーター名が少なくとも 1 つ含まれていなければなりません。Test 要素がいずれも一致するパラメーター名をもたない場合、空のテスト スイートが返されます。ワイルドカード文字 * を使用すると、任意の数の文字と一致します。疑問符 ? を使用すると単一の文字と一致します。

ProcedureName

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

クラスベースのテストでは、ProcedureName はテスト メソッドの名前です。関数ベースのテストでは、テストを含むローカル関数の名前です。スクリプトベースのテストでは、テスト セクション タイトルから生成された名前です。Name とは異なり、テスト プロシージャの名前には、クラスやパッケージの名前およびパラメーター化に関する情報は含まれません。

Superclass

テスト クラスの派生元であるクラスの名前。string 配列、文字ベクトル、または文字ベクトルの cell 配列として指定します。この引数は、配列 TestSuite の要素をフィルター処理します。テスト フレームワークがスイートにテストを含めるためには、Test 要素の TestClass プロパティが Superclass によって指定されたクラスの 1 つから派生するテスト クラスを指していなければなりません。Test 要素がいずれもクラスに一致しない場合、空のテスト スイートが返されます。

Tag

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

出力引数

suite

一連のテスト。matlab.unittest.Test 配列として指定します。

属性

Statictrue

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

すべて展開する

現在のインポート リストに matlab.unittest.TestSuite クラスを追加します。

import matlab.unittest.TestSuite;
cls = ?mypackage.MyTestClass;
    
% Create the suite using the method name
suite = TestSuite.fromMethod(cls, 'testMethod');
result = run(suite)
 
% Create the suite using the meta.method instance
metaMethod = findobj(cls.MethodList, 'Name', 'testMethod');
suite = TestSuite.fromMethod(cls, metaMethod);
result = run(suite)

作業フォルダーに、以下の 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

テスト クラスには、2 つのパラメーター化されたテスト メソッド testClasstestSize があります。

コマンド プロンプトで、パラメーター名 'single' を使用する testClass メソッドのすべてのパラメーター化されたテストからテスト スイートを作成します。

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

suite = TestSuite.fromMethod(?testZeros,'testClass', ...
    HasParameter('Name','single'));
{suite.Name}'
ans = 

    'testZeros/testClass(type=single,outSize=s2d)'
    'testZeros/testClass(type=single,outSize=s3d)'

前述の例から testZeros.m クラスを作成します。

コマンド プロンプトで、パラメーター名 'single' を使用する testClass メソッドのすべてのパラメーター化されたテストからテスト スイートを作成します。

import matlab.unittest.TestSuite;

suite = TestSuite.fromMethod(?testZeros,'testClass', ...
    'ParameterName','single');
{suite.Name}'
ans = 

    'testZeros/testClass(type=single,outSize=s2d)'
    'testZeros/testClass(type=single,outSize=s3d)'

ヒント

  • このメソッドを使って suite を作成した場合および suite を実行した場合、testClass は MATLAB パス上になければなりません。

バージョン履歴

R2013a で導入