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

Можно выбрать, как отформатировать и агрегировать результаты испытаний путем настройки отчетов. Используйте 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 класс. Тело отчета разделено на три основных группы: блок набора результатов, блок результата тестового набора и тест заканчиваются блок.

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

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

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

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

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

Простая модификация к сгенерированному отчету могла быть должна добавить некоторый текст в титульный лист. Методом, используемым здесь, является 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.

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

|

Похожие темы