メインコンテンツ

matlab.unittest.selectors.HasTag クラス

名前空間: matlab.unittest.selectors
スーパークラス: matlab.unittest.selectors.Selector

テスト タグに基づいて TestSuite 配列要素を選択

説明

matlab.unittest.selectors.HasTag クラスは、テスト タグに基づいてテスト スイートにフィルターを適用するセレクターを提供します。

クラスベースのテストでは、テスト タグは、対応する TestCase クラスの TestTags クラスレベルまたはメソッドレベル属性によって指定されます。詳細については、ユニット テストのタグ付けを参照してください。

クラスの属性

Sealed
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

説明

selector = matlab.unittest.selectors.HasTag は、タグが付いたすべての TestSuite 配列要素を選択するセレクターを作成します。

selector = matlab.unittest.selectors.HasTag(tag) は、指定されたタグをもつテストを選択するセレクターを作成します。フィルターが適用されたスイートにセレクターがテストを含めるには、Test 要素の Tag プロパティに、tag に一致するテスト タグが少なくとも 1 つ含まれていなければなりません。

入力引数

すべて展開する

テスト タグ。string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint オブジェクトとして指定します。テスト タグによるテストの選択は、次のように tag の指定方法によって異なります。

  • string スカラーまたは文字ベクトルを指定した場合、テスト タグが指定された値と同じでなければなりません。

  • 制約を指定した場合、テスト タグがその制約を満たさなければなりません。

この引数は Constraint プロパティを設定します。

プロパティ

すべて展開する

フィルターが適用されたテスト スイートにテストを含めるためにテスト タグが満たさなければならない条件。matlab.unittest.constraints.Constraint オブジェクトとして返されます。

このプロパティは入力引数 tag によって設定されます。

  • string スカラーまたは文字ベクトルを指定した場合、テスト フレームワークは、このプロパティを指定されたテスト タグを期待値とする IsEqualTo 制約に設定します。

  • 制約を指定した場合、テスト フレームワークは、このプロパティをその制約に設定します。

属性:

GetAccess
public
SetAccess
immutable

すべて折りたたむ

HasTag クラスを使用してテストを選択して、フィルターが適用されたテスト スイートを作成します。

現在のフォルダー内の ExampleTest.m という名前のファイルで、メソッドレベルの TestTags 属性を使用して個々のテストにタグを付ける ExampleTest クラスを作成します。テスト コードを簡略化するために、この例の Test メソッドでは、実装していないテスト用のプレースホルダーとして無条件テスト エラーを使用しています。

classdef ExampleTest < matlab.unittest.TestCase
    methods (Test)
        function testA(testCase)
            testCase.verifyFail("Implement the test.")
        end
    end
    methods (Test,TestTags="Unit")
        function testB(testCase)
            testCase.verifyFail("Implement the test.")
        end
        function testC(testCase)
            testCase.verifyFail("Implement the test.")
        end
    end
    methods (Test,TestTags=["Unit" "FeatureA"])
        function testD(testCase)
            testCase.verifyFail("Implement the test.")
        end
    end
    methods (Test,TestTags=["System" "FeatureB"])
        function testE(testCase)
            testCase.verifyFail("Implement the test.")
        end
    end
end

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

import matlab.unittest.TestSuite
import matlab.unittest.selectors.HasTag
import matlab.unittest.constraints.StartsWithSubstring

ExampleTest クラスからテスト スイートを作成し、テスト名を表示します。スイートには 5 つの Test 要素が含まれています。

suite = testsuite("ExampleTest");
disp({suite.Name}')
    {'ExampleTest/testE'}
    {'ExampleTest/testD'}
    {'ExampleTest/testB'}
    {'ExampleTest/testC'}
    {'ExampleTest/testA'}

"Unit" というタグが付いたテストをすべて選択します。

suite1 = suite.selectIf(HasTag("Unit"));
disp({suite1.Name}')
    {'ExampleTest/testD'}
    {'ExampleTest/testB'}
    {'ExampleTest/testC'}

いずれのタグも付いていないテストをすべて選択します。

suite2 =  suite.selectIf(~HasTag);
disp({suite2.Name}')
    {'ExampleTest/testA'}

"Feature" で始まるタグをもつテストのみを含めて、フィルターが適用されたテスト スイートを ExampleTest クラスから直接作成します。

suite3 = TestSuite.fromClass(?ExampleTest, ...
    HasTag(StartsWithSubstring("Feature")));
disp({suite3.Name}')
    {'ExampleTest/testE'}
    {'ExampleTest/testD'}

代替機能

テスト タグに基づいてテスト スイートにフィルターを適用する場合に柔軟性を最大化するために、HasTag クラスを使用します。あるいは、名前と値の引数 Tag を使用してフィルターが適用されたテスト スイートを作成できます。以下に例を示します。

filteredSuite = matlab.unittest.TestSuite.fromClass(?ExampleTest, ...
    "Tag","Unit");

runtests 関数または runperf 関数の名前と値の引数 Tag を使用してタグが付けられたテストを選択して実行することもできます。以下に例を示します。

results = runtests("ExampleTest.m","Tag","Unit");

バージョン履歴

R2015a で導入