Main Content

matlab.unittest.selectors.HasTag クラス

名前空間: matlab.unittest.selectors

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

説明

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

構築

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

selector = matlab.unittest.selectors.HasTag(tag) は、指定されたテスト タグをもつ TestSuite 配列要素を選択するセレクターを作成します。tag は、string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint オブジェクトとして指定できます。tag が string スカラーまたは文字ベクトルの場合、指定した値のタグが付いた Test 要素を選択する IsEqualTo 制約がテスト フレームワークで作成されます。

フィルター処理されたテスト スイートに Test 要素を含めるには、その Test 要素に、指定された string スカラーまたは文字ベクトル、または指定の制約を満たす値を含むタグが付いていなければなりません。

入力引数

すべて展開する

テスト タグ。string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint オブジェクトとして指定します。タグが付いたテストが次の条件を満たす場合、フィルター処理されたテスト スイートにそのテストが含まれます。

  • tag が文字ベクトルまたは string スカラーの場合、テスト タグが指定された値である。

  • tag が制約の場合、テスト タグが指定された制約を満たす値である。

プロパティ

すべて展開する

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

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

現在のフォルダー内のファイル ExampleTest.m に次のテスト クラスを作成します。

classdef ExampleTest < matlab.unittest.TestCase
    methods (Test)
        function testA (testCase)
            % test code
        end
    end
    methods (Test, TestTags = {'Unit'})
        function testB (testCase)
            % test code
        end
        function testC (testCase)
            % test code
        end
    end
    methods (Test, TestTags = {'Unit','FeatureA'})
        function testD (testCase)
            % test code
        end
    end
    methods (Test, TestTags = {'System','FeatureA'})
        function testE (testCase)
            % test code
        end
    end
end

コマンド プロンプトで ExampleTest クラスからテスト スイートを作成して、その内容を確認します。

import matlab.unittest.TestSuite
import matlab.unittest.selectors.HasTag

suite = TestSuite.fromClass(?ExampleTest)
suite = 

  1×5 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

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

3 Unique Tags のハイパーリンクをクリックして、スイートに含まれるすべてのタグを表示します。

        Tag     
    ____________

    {'FeatureA'}
    {'System'  }
    {'Unit'    }   

'Unit' というタグをもつテスト スイート要素をすべて選択します。

s1 = suite.selectIf(HasTag('Unit'))
s1 = 

  1×3 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

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

'FeatureA' というタグを含まないすべてのテスト スイート要素を選択します。

s2 =  suite.selectIf(~HasTag('FeatureA'));
{s2.Name}
ans =

  1×3 cell array

    {'ExampleTest/testB'}    {'ExampleTest/testC'}    {'ExampleTest/testA'}

タグが付いていないすべてのテスト スイート要素を選択します。

s3 =  suite.selectIf(~HasTag)
s3 = 

  Test with properties:

                  Name: 'ExampleTest/testA'
         ProcedureName: 'testA'
             TestClass: "ExampleTest"
            BaseFolder: 'C:\work'
      Parameterization: [0×0 matlab.unittest.parameters.EmptyParameter]
    SharedTestFixtures: [0×0 matlab.unittest.fixtures.EmptyFixture]
                  Tags: {1×0 cell}

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

代替方法

HasTag セレクターを使用すると、タグからテスト スイートを作成する際に最大の柔軟性が得られます。あるいは、テスト スイートの作成時に、名前と値の引数 Tag を使用してテスト スイートをフィルター処理できます。以下に例を示します。

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

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

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

バージョン履歴

R2015a で導入