メインコンテンツ

matlab.unittest.fixtures.WorkingFolderFixture クラス

名前空間: matlab.unittest.fixtures

一時作業フォルダーの作成と変更を行うフィクスチャ

説明

matlab.unittest.fixtures.WorkingFolderFixture は一時フォルダーを作成し、それを現在の作業フォルダーとして設定します。テスト中の製品やテストでは、ソース コードやテスト フォルダーの構造に影響を与えずに、ファイルの作成やフォルダーの内容変更ができます。

テスト フレームワークは、フィクスチャを設定するときに現在のフォルダーをパスに追加します。次に、フィクスチャが一時フォルダーを作成し、現在の作業フォルダーを一時フォルダーに変更します。テスト フレームワークがフィクスチャを破棄する際は、既定で一時フォルダーおよびそのフォルダーのすべての内容が削除されます。テスト フレームワークは現在の作業フォルダーを前の状態に戻します。

WorkingFolderFixture および TemporaryFolderFixture の両方のフィクスチャは一時フォルダーを作成します。ただし、WorkingFolderFixture はそのフォルダーを現在の作業フォルダーとしても設定します。

構築

matlab.unittest.fixtures.WorkingFolderFixture は、一時作業フォルダーの作成と変更を行うフィクスチャを構築します。

matlab.unittest.fixtures.WorkingFolderFixture(Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加オプションを使用してフィクスチャを構築します。たとえば、matlab.unittest.fixtures.WorkingFolderFixture('PreservingOnFailure',true) は、エラーが発生しても一時フォルダーを削除しないフィクスチャを構築します。

名前と値の引数

すべて展開する

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

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

テストの失敗後に一時フォルダーと内容を保持する設定。false または true (logical 0 または 1) として指定します。既定では、この値は false です。フィクスチャの構築時にこれを true として指定できます。

'PreservingOnFailure'true に設定し、フィクスチャを使用するテストでエラーが発生した場合、テスト フレームワークはコマンド ウィンドウにメッセージを表示し、フォルダーを削除しません。エラーには、検証、アサーションまたは致命的なアサーションの各検定エラーと、フィクスチャを使用するテスト内のキャッチされないエラーが含まれます。一時フォルダーとその内容を保持すると、テストが失敗した原因の調査に役立つことがあります。

データ型: logical

一時フォルダー名の接尾辞。文字ベクトルとして指定します。このパラメーターの値が一時フォルダーの名前に追加されます。

例: WorkingFolderFixture('WithSuffix','_ProductA')

プロパティ

すべて展開する

フィクスチャによって作成されるフォルダーの絶対パス。文字ベクトルとして指定します。

テスト エラー発生時に一時フォルダーとその内容を保存するかどうかのインジケーター。false または true として指定します。このプロパティは、名前と値のペアの引数 'PreservingOnFailure' を介してコンストラクターで設定します。

一時フォルダー名の接尾辞。文字ベクトルとして指定します。このプロパティは、名前と値のペアの引数 'WithSuffix' を介してコンストラクターで設定します。

コピーのセマンティクス

ハンドル。コピー操作に対するハンドル クラスの影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

次の ExampleTest クラス定義を MATLAB® パス上に作成します。

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            import matlab.unittest.fixtures.WorkingFolderFixture;
            
            testCase.applyFixture(WorkingFolderFixture);
            
            x = 1:10;
            
            % Save a file in the temporary folder
            save('data.mat','x');
            
            disp(['The temporary working folder: ' pwd])
            ls
        end
    end
end

コマンド プロンプトで、テストを実行します。

run(ExampleTest);
Running ExampleTest
The temporary working folder: C:\AppData\Local\Temp\tp6ff2cadf_9eed_4e90_88c1_5ff9ee8abb25

.         ..        data.mat  

.
Done ExampleTest
__________

一時フォルダーの名前はさまざまです。

次の ExampleTest2 クラス定義を MATLAB パス上に作成します。

classdef ExampleTest2 < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            import matlab.unittest.fixtures.WorkingFolderFixture;
            
            f = WorkingFolderFixture('WithSuffix','_ProductA');
            testCase.applyFixture(f);
            
            x = 1:10;
            
            % Save a file in the temporary folder
            save('data.mat','x');
            
            disp(['The temporary working folder: ' pwd])
            ls
        end
    end
end

コマンド プロンプトで、テストを実行します。

run(ExampleTest2);
Running ExampleTest2
The temporary working folder: C:\AppData\Local\Temp\tp72c6ce7c_a380_4f5e_be3b_4f7191a6cd2c_ProductA

.         ..        data.mat  

.
Done ExampleTest2
__________

一時フォルダーの名前はさまざまですが、最後に _ProductA が付きます。

バージョン履歴

R2016a で導入