Настройте отчеты результатов испытаний

Можно выбрать, как отформатировать и агрегировать результаты испытаний путем настройки отчетов. Используйте sltest.testmanager.TestResultReport класс, чтобы создать подкласс и затем использовать свойства и методы, чтобы настроить, как менеджер по Тесту генерирует отчет результатов. Можно изменить стили шрифта, добавить графики, организовать результаты в таблицы, включать изображения модели и т.д. Используя пользовательский класс, требует MATLAB® Лицензия Report Generator™.

Наследуйте класс отчета

Чтобы настроить сгенерированный отчет, необходимо наследоваться sltest.testmanager.TestResultReport класс. После того, как вы наследуетесь классу, можно изменить свойства и методы. Чтобы наследовать класс, добавьте раздел определения класса в новый или существующий скрипт MATLAB. Подкласс является вашим пользовательским именем класса, и суперклассом, которому вы наследовались, является sltest.testmanager.TestResultReport. Для получения дополнительной информации о создании подклассов, см. Конструкторов подкласса Проекта. Затем добавьте код в наследованный класс или методы, чтобы создать ваши индивидуальные настройки.

% class definition
classdef CustomReport < sltest.testmanager.TestResultReport
    %
    % Report customization code here
    %
end

Иерархия метода

Когда вы создаете подкласс, производный класс наследовал методы от sltest.testmanager.TestResultReport класс. Тело отчета разделено на три основных группы: блок набора результатов, блок результата тестового набора и тест заканчиваются блок.

Method hierarchy for report layout

Блок набора результатов содержит таблицу набора результатов, таблицу покрытия, и соединяется с оглавлением.

Method hierarchy for result set

Блок результата тестового набора содержит таблицу результатов тестового набора, таблицу покрытия, ссылки требований, и соединяется с оглавлением.

Method hierarchy for test suite result

Блок результата теста содержит тест и тестовую таблицу результатов итераций, таблицу покрытия, ссылки требований, выходные графики сигнала, графики сравнения, настройки теста, и соединяется с оглавлением.

Method hierarchy for test case result

Измените класс

Чтобы вставить ваше собственное содержимое отчета или изменить размещение сгенерированного отчета, измените наследованные методы класса. Для получения общей информации об изменении методов, смотрите, Изменяют Унаследованные методы.

Простая модификация к сгенерированному отчету могла быть должна добавить некоторый текст в титульный лист. Методом, используемым здесь, является addTitlePage.

% class definition
classdef CustomReport < sltest.testmanager.TestResultReport
    methods
        function this = CustomReport(resultObjects, reportFilePath)
            this@sltest.testmanager.TestResultReport(resultObjects,...
            reportFilePath);
        end
    end
    
    methods(Access=protected)
        function addTitlePage(obj)
            import mlreportgen.dom.*;
            
            % Add a custom message
            label = Text('Some custom content can be added here');
            append(obj.TitlePart,label);
            
            % Call the superclass method to get the default behavior
            addTitlePage@sltest.testmanager.TestResultReport(obj);
        end
    end
end
Щелкните здесь для файла кода этого примера.

Более комплексная модификация сгенерированного отчета должна включать снимок состояния модели, которая была протестирована.

% class definition
classdef CustomReport < sltest.testmanager.TestResultReport
    methods
        function this = CustomReport(resultObjects,reportFilePath)
            this@sltest.testmanager.TestResultReport(resultObjects,reportFilePath);
        end
    end
    
    methods(Access=protected)
        % Method to customize test case/iteration result section in the report
        function docPart = genTestCaseResultBlock(obj,result)
            % result: A structure containing test case or iteration result
            import mlreportgen.dom.*;
            
            % Call the superclass method to get the default behavior
            docPart = genTestCaseResultBlock@sltest.testmanager.TestResultReport(...
                                                                      obj,result);
            
            % Get the test case result data for putting in the report
            tcrObj = result.Data;
            
            % Insert model screenshot at the test case result level
            if isa(tcrObj, 'sltest.testmanager.TestCaseResult')
                
                % Initialize model name
                modelName = '';
                
                % Check in the test case result if it has model information. If
                % not, it means there were iterations in the test case or a
                % model was not used.
                testSimMetaData = tcrObj.SimulationMetaData;
                
                if (~isempty(testSimMetaData))
                    modelName = testSimMetaData.modelName;
                end
                
                % Get iteration results
                iterResults = getIterationResults(tcrObj);
                
                % Get the model name in case test case had iterations
                if (~isempty(iterResults))
                    modelName = iterResults(1).SimulationMetaData.modelName;
                end
                
                % Insert model snapshot. This will not work for harnesses. With
                % minimal changes we can also open the harness used for
                % testing.
                if (~isempty(modelName))
                    try
                        open_system(modelName);
                        outputFileName = [tempdir, modelName, '.png'];
                        if exist(outputFileName,'file')
                            delete(outputFileName);
                        end
                        print(outputFileName, '-s', '-dpng');
                        para = sltest.testmanager.ReportUtility.genImageParagraph(...
                            outputFileName,...
                            '5.2in','3.7in');
                        append(docPart,para);
                    catch
                    end
                end
            end
        end
    end
end
Щелкните здесь для файла кода этого примера.

Сгенерируйте отчет Используя пользовательский класс

После того, как вы настроите класс и методы, используйте sltest.testmanager.report сгенерировать отчет. Необходимо использовать 'CustomReportClass' пара "имя-значение" для пользовательского класса в виде строки. Например:

% Generate the result set from imported data
result = sltest.testmanager.importResults('demoResults.mldatx');

% Specify the report file name and path
filePath = 'testreport.zip';

% Generate the report using the custom class
sltest.testmanager.report(result,filePath, ...
            'Author','MathWorks',...
            'Title','Test',...
            'IncludeMLVersion',true,...
            'IncludeTestResults',int32(0),...
            'CustomReportClass','CustomReport',...
            'LaunchReport', true);

В качестве альтернативы можно создать пользовательский отчет с помощью менеджера по Тесту, сообщает диалоговое окно. Выберите результат испытаний, нажмите кнопку Report на панели инструментов и задайте класс пользовательского отчета в диалоговом окне Create Test Result Report. Для менеджера по Тесту, чтобы использовать класс пользовательского отчета, класс должен быть на пути MATLAB.

Смотрите также

|

Похожие темы