ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

runtests

一連のテストの実行

構文

  • results = runtests
  • results = runtests(tests)
  • results = runtests(tests,Name,Value)

説明

results = runtests は、現在のフォルダーのすべてのテストを実行し、結果を TestResult オブジェクトとして返します。

results = runtests(tests) は、指定された一連のテストを実行します。

results = runtests(tests,Name,Value) は、1 つまたは複数の Name,Value の引数ペアで指定された追加オプションを使用して一連のテストを実行します。

すべて折りたたむ

現在の作業フォルダーに myExample というフォルダーを作成し、そのフォルダーに切り替えます。

myExample フォルダーに typeTest.m というテスト スクリプトを作成します。

%% Test double class
exp = 'double';
act = ones;
assert(isa(act,exp))

%% Test single class
exp = 'single';
act = ones('single');
assert(isa(act,exp))

%% Test uint16 class
exp = 'uint16';
act = ones('uint16');
assert(isa(act,exp))

myExample フォルダーに sizeValueTest.m というテスト スクリプトを作成します。

%% Test size
exp = [7 13];
act = ones([7 13]);
assert(isequal(size(act),exp))

%% Test values
act = ones(42);
assert(unique(act) == 1)

現在のフォルダー内のすべてのテストを実行します。

runtests
Running sizeValueTest
..
Done sizeValueTest
__________

Running typeTest
...
Done typeTest
__________


ans = 

  1x5 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   5 Passed, 0 Failed, 0 Incomplete.
   0.013069 seconds testing time.

MATLAB® で実行されたテストは 5 つです。sizeValueTest の 2 つのテストと typeTest の 3 つのテストにパスしています。

以下に示すテスト ファイルを作成し、MATLAB パス上に runtestsExampleTest.m として保存します。

function tests = runtestsExampleTest
tests = functiontests(localfunctions);

function testFunctionOne(testCase)

テストを実行します。

results = runtests('runtestsExampleTest.m');
Running runtestsExampleTest
.
Done runtestsExampleTest
__________

前の例のテスト ファイル runtestsExampleTest.m が存在しない場合は作成します。

サブディレクトリ tmpTest を作成し、そのディレクトリに以下の runtestsExampleSubFolderTest.m ファイルを作成します。

function tests = runtestsExampleSubFolderTest
tests = functiontests(localfunctions);

function testFunctionTwo(testCase)

'IncludeSubfolders' を true に設定して、tmpTest の上のディレクトリからテストを実行します。

results = runtests(pwd,'IncludeSubfolders',true);
Running runtestsExampleTest
.
Done runtestsExampleTest
__________

Running runtestsExampleSubFolderTest
.
Done runtestsExampleSubFolderTest
__________

runtests で現在のディレクトリとサブディレクトリ内のテストが実行されました。

関数 runtests'IncludeSubfolders' プロパティを指定しない場合、サブディレクトリ内のテストは実行されません。

results = runtests(pwd);
Running runtestsExampleTest
.
Done runtestsExampleTest
__________

以下に示すテスト ファイルを作成し、MATLAB パス上に runInParallelTest.m として保存します。

function tests = runInParallelTest
tests = functiontests(localfunctions);

function testA(testCase)
verifyEqual(testCase,5,5);

function testB(testCase)
verifyTrue(testCase,logical(1));

function testC(testCase)
verifySubstring(testCase,'SomeLongText','Long');

function testD(testCase)
verifySize(testCase,ones(2,5,3),[2 5 3]);

function testE(testCase)
verifyGreaterThan(testCase,3,2);

function testF(testCase)
verifyEmpty(testCase,{},'Cell array is not empty.');

function testG(testCase)
verifyMatches(testCase,'Some Text','Some [Tt]ext');

テストを並列実行します。テストを並列実行するには Parallel Computing Toolbox™ が必要です。テスト フレームワークによって、グループの順序と数、あるいは各グループに含めるテストが異なる場合があります。

results = runtests('runInParallelTest','UseParallel',true);
Split tests into 7 groups and running them on 4 workers.
----------------
Finished Group 2
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 3
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 1
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 4
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 6
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 5
----------------
Running runInParallelTest
.
Done runInParallelTest
__________


----------------
Finished Group 7
----------------
Running runInParallelTest
.
Done runInParallelTest
__________

作業フォルダーで 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

テスト スイート全体では 11 のテスト要素があります。testClass メソッドから 6 要素、testSize メソッドから 2 要素、testDefaultClasstestDefaultSizetestDefaultValue メソッドから各 1 要素です。

コマンド プロンプトで、outSize パラメーター プロパティを使用するテスト要素を実行します。

runtests('testZeros','ParameterProperty','outSize')
Running testZeros
........
Done testZeros
__________


ans = 

  1x8 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   8 Passed, 0 Failed, 0 Incomplete.
   0.013499 seconds testing time.

runtestsoutSize パラメーター プロパティを使用する 8 つのテストを実行しました。testClass メソッドから 6 要素とtestSize メソッドから 2 要素です。

コマンド プロンプトで、single パラメーター名を使用するテスト要素を実行します。

runtests('testZeros','ParameterName','single')
Running testZeros
..
Done testZeros
__________


c = 

  1x2 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   2 Passed, 0 Failed, 0 Incomplete.
   0.0034442 seconds testing time.

runtestsoutSize パラメーター名を使用する testClass メソッドから 2 つのテストを実行しました。

関連する例

入力引数

すべて折りたたむ

テスト スイート。文字ベクトルまたは文字ベクトルのセル配列として指定します。セル配列の各文字ベクトルには、テスト ファイル、テスト クラス、テスト スイート要素、テスト クラスを含むパッケージ、あるいはテスト ファイルを含むフォルダーのそれぞれの名前を含めることができます。

例: runtests('ATestFile.m')

例: runtests('ATestFile/aTest')

例: runtests('mypackage.MyTestClass')

例: runtests(pwd)

例: runtests({'mypackage.MyTestClass','ATestFile.m',pwd,'mypackage.subpackage'})

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: runtests(tests,'Name','productA_*') は、'productA_' で始まる名前のテスト要素を実行します。

すべて折りたたむ

テストを並列実行するかどうかを示すインジケーター。false または true (0 または 1) として指定します。既定では runtests がテストを逐次実行します。UseParalleltrue に設定すると、関数 runtests はテスト スイートをグループに分け、次の条件が満たされる場合に各グループを並列実行します。

  • Parallel Computing Toolbox がインストールされている。

  • 開いている並列プールが存在するか、[並列設定] でプールの自動作成が有効にされている。

そうでない場合、runtestsUseParallel の設定値に関係なくテストを逐次的に実行します。

    メモ:   テストを並列実行するには Parallel Computing Toolbox が必要です。テスト フレームワークによって、グループの順序と数、あるいは各グループに含めるテストが異なる場合があります。

データ型: logical

すべて折りたたむ

スイート要素名。文字ベクトルとして指定します。テストを実行するテスト フレームワークでは、テスト要素の Name プロパティは指定した名前と一致しなければなりません。ワイルドカード文字 * を使用すると、任意の数の文字と一致します。疑問符 ? を使用すると、単一の文字と一致します。

サブフォルダー内のテストを実行するかどうかを示すインジケーター。false または true (0 または 1) として指定します。既定では、フレームワークは指定されたフォルダー内のテストを実行しますが、そのサブフォルダー内のテストは実行しません。

データ型: logical

サブパッケージ内のテストを実行するかどうかを示すインジケーター。false または true (0 または 1) として指定します。既定では、フレームワークは指定されたパッケージ内のテストを実行しますが、そのサブパッケージ内のテストは実行しません。

データ型: logical

テスト スイート要素によって使用されるパラメーター化プロパティ名。文字ベクトルとして指定します。ワイルドカード文字 * を使用すると、任意の数の文字と一致します。疑問符 ? を使用すると、単一の文字と一致します。

テスト スイート要素で使用されるパラメーターの名前。文字ベクトルとして指定します。ワイルドカード文字 * を使用すると、任意の数の文字と一致します。疑問符 ? を使用すると単一の文字と一致します。

テスト クラス、関数またはスクリプトを定義するファイルを含むベース フォルダー名。文字ベクトルとして指定します。テスト要素をスイートに含めるには、テスト要素が指定のベース フォルダーに含まれていなければなりません。ワイルドカード文字 * を使用すると、任意の数の文字と一致します。疑問符 ? を使用すると単一の文字と一致します。パッケージで定義したテスト ファイルでは、ベース フォルダーは最上位パッケージ フォルダーの親です。

テスト要素タグの名前。文字ベクトルとして指定します。ワイルドカード文字 * を使用すると、任意の数の文字と一致します。疑問符 ? を使用すると単一の文字と一致します。

すべて折りたたむ

    メモ:   'Recursively' は推奨されません。代わりに 'IncludeSubfolders''IncludeSubpackages' を使用してください。

サブフォルダーおよびサブパッケージ内のテストを実行するかどうかを示すインジケーター。false または true (0 または 1) として指定します。既定では、runtests は指定されたフォルダーまたはパッケージ内 (そのサブフォルダーまたはサブパッケージではない) のテストを実行します。

データ型: logical

R2013b で導入

この情報は役に立ちましたか?