Можно выбрать, как отформатировать и агрегировать результаты испытаний путем настройки отчетов. Используйте 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.
sltest.testmanager.TestResultReport
| sltest.testmanager.report