exponenta event banner

matlab.perftest.StartCase класс

Пакет: matlab.perfest
Суперклассы: matlab.unittest.TestCase

Суперкласс matlab.perftest классы эксплуатационных испытаний

Описание

Используйте matlab.perftest.TestCase класс для записи основанных на классе тестов производительности, которые могут определять границы измерений. По умолчанию фреймворк измеряет производительность вокруг границы метода тестирования. Однако тестовые классы, наследующие от matlab.perftest.TestCase может использовать startMeasuring и stopMeasuring методы определения границ для измерения определенных сегментов кода.

matlab.perftest.TestCase происходит от matlab.unittest.TestCase класс.

Строительство

Структура тестирования создает matlab.perftest.TestCase экземпляры.

Методы

keepMeasuringИзмерить код с автоматическим закольцовыванием
startMeasuringОбозначить начало границы измерения
stopMeasuringОбозначить конец границы измерения

Унаследованные методы

addTeardownДинамически добавлять подпрограмму разрыва в TestCase случай
applyFixtureИспользовать приспособление с TestCase
forInteractiveUseСоздание Test Case для интерактивного использования
getSharedTestFixturesПредоставление доступа к общим испытательным приборам
регистрацияЗапись диагностической информации при выполнении теста
onFailureДинамически добавлять диагностику сбоев тестирования
управляемыйУправляемый TestCase тест

Также, TestCase класс наследует методы из этих классов:

matlab.unittest.qualifications. AssertableКвалификация для проверки предварительных условий испытания
matlab.unittest.qualifications. AssumableКвалификация для фильтрации содержимого теста
matlab.unittest.qualifications. FatalAssertableКвалификация для прекращения выполнения теста
matlab.unittest.qualifications. Поддающийся проверкеКвалификация для создания условий мягкого отказа

Копирование семантики

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте класс тестирования производительности, preallocationTest. Система тестирования производительности измеряет время для каждого из четырех методов тестирования.

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