-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTestResultsSummaryPlugin.m
More file actions
43 lines (39 loc) · 2.49 KB
/
Copy pathTestResultsSummaryPlugin.m
File metadata and controls
43 lines (39 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
classdef TestResultsSummaryPlugin < matlab.unittest.plugins.TestRunnerPlugin
% Copyright 2025-26 The MathWorks, Inc.
methods (Access=protected)
function reportFinalizedSuite(plugin, pluginData)
% Checkout MATLAB Test license
license('checkout', 'matlab_test');
testDetails = struct([]);
for idx = 1:numel(pluginData.TestResult)
testDetails(idx).TestResult.Duration = pluginData.TestResult(idx).Duration;
if isfield(pluginData.TestResult(idx).Details, "DiagnosticRecord") && ~isempty(pluginData.TestResult(idx).Details.DiagnosticRecord)
testDetails(idx).TestResult.Details.DiagnosticRecord.Event = pluginData.TestResult(idx).Details.DiagnosticRecord.Event;
testDetails(idx).TestResult.Details.DiagnosticRecord.Report = pluginData.TestResult(idx).Details.DiagnosticRecord.Report;
else
testDetails(idx).TestResult.Details = struct();
end
testDetails(idx).TestResult.Name = pluginData.TestResult(idx).Name;
testDetails(idx).TestResult.Passed = pluginData.TestResult(idx).Passed;
testDetails(idx).TestResult.Failed = pluginData.TestResult(idx).Failed;
testDetails(idx).TestResult.Incomplete = pluginData.TestResult(idx).Incomplete;
testDetails(idx).BaseFolder = pluginData.TestSuite(idx).BaseFolder;
end
try
jsonTestResults = jsonencode(testDetails, "PrettyPrint", true);
testArtifactFile = fullfile(getenv("RUNNER_TEMP"), "matlabTestResults_" + string(datetime('now', 'Format', 'yyyyMMdd_HHmmss_SSS')) + ".json");
[fID, msg] = fopen(testArtifactFile, "w");
if fID == -1
warning("testframework:TestResultsSummaryPlugin:UnableToOpenFile","Unable to open a file required to create the table of test results. (Cause: %s)", msg);
else
closeFile = onCleanup(@()fclose(fID));
fprintf(fID, '%s', jsonTestResults);
end
catch e
warning("testframework:TestResultsSummaryPlugin:UnableToJsonEncode","Unable to jsonencode test results data. (Cause: %s)", e.message);
end
% Invoke the superclass method
reportFinalizedSuite@matlab.unittest.plugins.TestRunnerPlugin(plugin, pluginData);
end
end
end