Main Content

matlab.unittest.TestRunner クラス

パッケージ: matlab.unittest

matlab.unittest フレームワークでテストを実行するためのクラス

説明

この matlab.unittest.TestRunner クラスは、matlab.unittest フレームワークでテスト スイートを実行するために使用する基本的 API です。このクラスは、配列 TestSuite で実行および動作します。このクラスを使用して、テストの実行をカスタマイズします。

matlab.unittest.TestRunner クラスは handle クラスです。

クラスの属性

Sealed
true

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

作成

シンプルでメッセージを表示しない TestRunner オブジェクトを作成するには、静的な withNoPlugins メソッドを呼び出します。

runner = matlab.unittest.TestRunner.withNoPlugins;

TestRunner オブジェクトを作成して、MATLAB® のコマンド ウィンドウからテストを実行するには、静的な withTextOutput メソッドを呼び出します。

runner = matlab.unittest.TestRunner.withTextOutput;

カスタマイズした TestRunner オブジェクトを作成するには、addPlugin メソッドを呼び出します。

runner = matlab.unittest.TestRunner.withNoPlugins;
runner.addPlugin(SomePlugin())

プロパティ

すべて展開する

テスト実行アーティファクトを保存するルート フォルダー。string スカラーまたは文字ベクトルとして指定します。既定では、ArtifactsRootFolder の値は string(tempdir) からの値ですが、書き込み可能な任意のフォルダーに設定できます。

テスト実行時に生成されたアーティファクトは、いずれも ArtifactsRootFolder 内のサブフォルダーに保存されます。このサブフォルダーの名前は、特定のテスト実行に関連付けられる一意の識別子です。MATLAB はテスト実行によってアーティファクトが生成された場合にのみサブフォルダーを作成します。

たとえば、ArtifactsRootFolder"C:\Temp" に設定され、自動生成されたテスト実行識別子が "1231df38-7515-4dbe-a869-c3d9f885f379" であるとします。テスト実行によってアーティファクト "artifact.txt" が生成されると、このアーティファクトは "C:\Temp\1231df38-7515-4dbe-a869-c3d9f885f379\artifact.txt" として保存されます。

テスト ランナー外でセットアップされたフィクスチャ。スカラーまたは matlab.unittest.fixtures.Fixture インスタンスの行ベクトルとして指定します。フィクスチャのセットアップと破棄の処理中に環境構成を自動指定する代わりに手動で設定するように指定するには、このプロパティを使用します。

テスト ランナーは、フィクスチャが既にセットアップされていると認識するため、PrebuiltFixtures プロパティで指定されたフィクスチャのセットアップや破棄を一切試行しません。テスト スイートで共有テスト フィクスチャが必要とされ、そのテスト フィクスチャがプリビルドのフィクスチャとして指定されている場合、テスト ランナーはセットアップや破棄を行いません。

メモ

テスト ランナーがプリビルドのフィクスチャを使用するのは、そのフィクスチャが PrebuiltFixtures プロパティで指定されていて、テスト クラス定義で SharedTestFixture として列挙されている場合のみです。テスト ランナーは、TestCase.applyFixture メソッドで登録されているプリビルドのフィクスチャは使用しません。

メソッド

すべて展開する

すべて折りたたむ

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

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite

TestSuite 配列を作成します。

suite = TestSuite.fromClass(?mypackage.MyTestClass);

TestRunner オブジェクトを作成し、スイートを実行します。

runner = TestRunner.withTextOutput;
result = run(runner,suite);

この例では、共有テスト フィクスチャを使用した後、これをプリビルドのフィクスチャとして指定します。テスト ランナーはプリビルド フィクスチャのセットアップおよび破棄を行いません。テストではフィクスチャが存在すると仮定されるため、通常はフィクスチャにより自動実行されるセットアップの作業を手動で行う必要があります。

作業フォルダー内のファイルにテスト クラスを作成します。テスト クラスは共有テスト フィクスチャとして PathFixture を使用します。この例では、作業フォルダー内にサブフォルダー helperFiles が存在すると仮定しています。

classdef (SharedTestFixtures={ ...
        matlab.unittest.fixtures.PathFixture('helperFiles')}) ...
        SampleTest < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            f = testCase.getSharedTestFixtures;
            
            import matlab.unittest.constraints.ContainsSubstring
            testCase.assertThat(path,ContainsSubstring(f.Folder))
        end
    end
end

コマンド プロンプトでテスト スイートとテスト ランナーを作成します。

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite

suite = TestSuite.fromClass(?SampleTest);
runner = TestRunner.withTextOutput;

共有テスト フィクスチャを使用してテストを実行します。ここではフィクスチャがプリビルドされていません。

runner.run(suite);
Setting up PathFixture
Done setting up PathFixture: Added 'C:\Work\helperFiles' to the path.
__________

Running SampleTest
.
Done SampleTest
__________

Tearing down PathFixture
Done tearing down PathFixture: Restored the path to its original state.
__________

テスト ランナーが共有テスト フィクスチャのセットアップと破棄を行います。

フィクスチャのインスタンスを作成し、テスト ランナーに追加します。

f = matlab.unittest.fixtures.PathFixture('helperFiles');
runner.PrebuiltFixtures = f;

'helperFiles' フォルダーを手動でパスに追加します。PathFixture は、指定されたフォルダーをパスに追加します。テストはこのセットアップ操作に依存します。このフィクスチャはプリビルドとして定義されているため、テスト ランナーによるセットアップと破棄は実行されません。したがって、この操作を手動で行う必要があります。この場合、パスに手動で追加しないと、テストは失敗します。

p = fullfile(pwd,'helperFiles');
oldPath = addpath(p);

テストを実行します。

runner.run(suite);
Running SampleTest
.
Done SampleTest
__________

テスト ランナーは、フィクスチャがプリビルドされていると仮定するため、そのセットアップや破棄を行いません。

パスを手動でリセットします。

path(oldPath)

バージョン履歴

R2013a で導入