Main Content

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

matlab.unittest.TestSuite.fromFile

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

テスト ファイルからの配列 TestSuite の作成

説明

suite = matlab.unittest.TestSuite.fromFile(file) は、配列 TestSuite を、file 内のすべてのテストから作成します。テスト スイートの実行時、MATLAB® は現在のフォルダーをテスト内容を定義するフォルダーに変更し、テストを実行する間、そのフォルダーをパスに追加します。

suite = matlab.unittest.TestSuite.fromFile(file,s) は、セレクター s によって指定される条件を満たす file 内のすべてのテストから配列 TestSuite を作成します。

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

入力引数

file

テスト ファイルの絶対パスまたは相対パス。文字ベクトルまたは string スカラーとして指定します。

s

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

名前と値の引数

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

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

BaseFolder

テストを定義するファイルを含むフォルダーの名前。string 配列、文字ベクトルまたは文字ベクトルの 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

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

すべて展開する

ユニット テスト用の関数

function res = add5(x)
% ADD5 Increment input by 5.
if ~isa(x,'numeric')
    error('add5:InputMustBeNumeric','Input must be numeric.')
end
res = x + 5;
end

TestCase クラス。このクラスにはテスト メソッドが含まれます。

classdef Add5Test < matlab.unittest.TestCase
    methods (Test)
        function testDoubleOut(testCase)
            actOutput = add5(1);
            testCase.verifyClass(actOutput,'double')
        end
        function testNonNumericInput(testCase)
            testCase.verifyError(@()add5('0'),'add5:InputMustBeNumeric')
        end
    end
end

Add5Test クラス ファイルからテスト スイートを作成します。

suite = matlab.unittest.TestSuite.fromFile('Add5Test.m')
result = run(suite);
Running Add5Test
..
Done Add5Test
__________

作業フォルダーで 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 があります。

コマンド プロンプトで、HasParameter セレクターを使用して testZeros.m 内のすべてのパラメーター化されたテスト メソッドからテスト スイートを作成します。

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

suite = TestSuite.fromFile('testZeros.m', HasParameter)
suite = 

  1×8 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

Tests Include:
   5 Unique Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.

StartsWithSubstring の制約付きで HasName セレクターを使用し、testSize メソッドのテスト要素からのみテスト スイートを作成します。

import matlab.unittest.selectors.HasName;
import matlab.unittest.constraints.StartsWithSubstring;

suite = TestSuite.fromFile('testZeros.m',...
    HasName(StartsWithSubstring('testZeros/testSize')));
{suite.Name}'
ans = 

    'testZeros/testSize(outSize=s2d)'
    'testZeros/testSize(outSize=s3d)'

テスト スイートには testSize メソッドの 2 つのパラメーター化されたテストが含まれます。

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

コマンド プロンプトで、'testZeros/testSize' で始まる名前をもつ、testZeros.m 内のすべてのテスト メソッドからテスト スイートを作成します。このテスト スイートには testSize メソッドのパラメーター化されたテストが含まれます。

import matlab.unittest.TestSuite;

suite = TestSuite.fromFile('testZeros.m', 'Name', 'testZeros/testSize*');
{suite.Name}'
ans = 

    'testZeros/testSize(outSize=s2d)'
    'testZeros/testSize(outSize=s3d)'

テスト スイートが、必ず 1 つの特定のテスト メソッドに関連づけられたテスト要素で構成されるように、TestSuitefromMethod メソッドを使用します。

コマンド プロンプトで、'Size' で終わる名前をもつ、testZeros.m 内のすべてのテスト メソッドからテスト スイートを作成します。

import matlab.unittest.TestSuite;

suite = TestSuite.fromFile('testZeros.m', 'Name', '*Size');
{suite.Name}'
ans = 

    'testZeros/testDefaultSize'

testSize メソッドの要素はテスト スイートに含まれていないことに注意してください。これらの要素名はパラメーター化に関する情報をもっているため、'Size' で終わりません。

パラメーター名 'double' を使用するすべてのテストのテスト スイートを作成します。

suite = TestSuite.fromFile('testZeros.m', 'ParameterName', 'double');
{suite.Name}'
ans = 

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

セレクターを使用して同じテスト スイートを作成するには、suite = TestSuite.fromFile('testZeros.m', HasParameter('Name','double')) を使用します。

バージョン履歴

R2013a で導入