Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

matlab.perftest.TestCase クラス

パッケージ: matlab.perftest
スーパークラス: matlab.unittest.TestCase

matlab.perftest パフォーマンス テスト クラスのスーパークラス

説明

測定境界の定義が可能なクラスベースのパフォーマンス テストを作成するには、matlab.perftest.TestCase クラスを使用します。既定では、フレームワークはテスト メソッドの境界の周囲でパフォーマンスを測定します。しかし、matlab.perftest.TestCase から継承するテスト クラスは startMeasuring メソッドおよび stopMeasuring メソッドを使用して境界を定義し、特定のコード セグメントを測定できます。

matlab.perftest.TestCasematlab.unittest.TestCase クラスから派生します。

構築

テスト フレームワークは matlab.perftest.TestCase インスタンスを作成します。

メソッド

keepMeasuring自動ループによるコードの測定
startMeasuring測定境界の開始を指定
stopMeasuring測定境界の終了を指定

継承メソッド

addTeardown破棄ルーチンを TestCase インスタンスに動的に追加
applyFixtureTestCase でのフィクスチャの使用
forInteractiveUse対話型で使用する TestCase を作成
getSharedTestFixtures共有テスト フィクスチャへのアクセスの提供
logテスト実行中の診断情報の記録
onFailureテスト失敗の診断情報を動的に追加
runTestCase テストを実行する

また、TestCase クラスは以下のクラスからメソッドを継承します。

matlab.unittest.qualifications.Assertableテストの前提条件を検証する検定
matlab.unittest.qualifications.Assumableテストの内容をフィルター処理する検定
matlab.unittest.qualifications.FatalAssertableテストの実行を中断する検定
matlab.unittest.qualifications.Verifiableソフト エラー条件を生成する検定

コピーのセマンティクス

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

すべて折りたたむ

パフォーマンス テスト クラス preallocationTest を作成します。パフォーマンス テスト フレームワークは 4 つのテスト メソッドのそれぞれについて時間を測定します。

classdef preallocationTest < matlab.perftest.TestCase
    methods(Test)
        function testOnes(testCase)
            x = ones(1,1e7);
        end
        
        function testIndexingWithVariable(testCase)
            id = 1:1e7;
            x(id) = 1;
        end
        
        function testIndexingOnLHS(testCase)
            x(1:1e7) = 1;
        end
        
        function testForLoop(testCase)
            for i=1:1e7
                x(i) = 1;
            end
        end
        
    end
end

パフォーマンス テスト クラス fprintfTest を作成します。パフォーマンス テスト フレームワークは startMeasuring メソッドの呼び出しと stopMeasuring メソッドの呼び出しの間にあるコードを測定します。この境界は、パフォーマンス テスト フレームワークが関数 fprintf の呼び出しのみを測定するように制限します。セットアップ動作、破棄動作および検定テストを除外します。

classdef fprintfTest < matlab.perftest.TestCase
    methods(Test)
        function testPrintingToFile(testCase)
            file = tempname;
            fid = fopen(file, 'w');
            testCase.assertNotEqual(fid, -1, 'IO Problem');
            
            stringToWrite = repmat('abcdef', 1, 1000000);
            
            testCase.startMeasuring();
            fprintf(fid, '%s', stringToWrite);
            testCase.stopMeasuring();
            
            testCase.verifyEqual(fileread(file), stringToWrite);
            fclose(fid);
        end
    end
end
R2016a で導入