Skip to content

Commit aa814c3

Browse files
committed
add input check and actionName
1 parent 9453d8c commit aa814c3

2 files changed

Lines changed: 33 additions & 31 deletions

File tree

plugins/+testframework/TestResultsSummaryPlugin.m

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,39 @@
33

44
methods (Access=protected)
55
function reportFinalizedSuite(plugin, pluginData)
6-
% Checkout MATLAB Test license
7-
license('checkout', 'matlab_test');
6+
if strcmpi(getenv("MW_GENERATE_JOB_SUMMARY"), "true")
7+
% Checkout MATLAB Test license
8+
license('checkout', 'matlab_test');
89

9-
testDetails = struct([]);
10-
for idx = 1:numel(pluginData.TestResult)
11-
testDetails(idx).TestResult.Duration = pluginData.TestResult(idx).Duration;
12-
if isfield(pluginData.TestResult(idx).Details, "DiagnosticRecord") && ~isempty(pluginData.TestResult(idx).Details.DiagnosticRecord)
13-
testDetails(idx).TestResult.Details.DiagnosticRecord.Event = pluginData.TestResult(idx).Details.DiagnosticRecord.Event;
14-
testDetails(idx).TestResult.Details.DiagnosticRecord.Report = pluginData.TestResult(idx).Details.DiagnosticRecord.Report;
15-
else
16-
testDetails(idx).TestResult.Details = struct();
10+
testDetails = struct([]);
11+
for idx = 1:numel(pluginData.TestResult)
12+
testDetails(idx).TestResult.Duration = pluginData.TestResult(idx).Duration;
13+
if isfield(pluginData.TestResult(idx).Details, "DiagnosticRecord") && ~isempty(pluginData.TestResult(idx).Details.DiagnosticRecord)
14+
testDetails(idx).TestResult.Details.DiagnosticRecord.Event = pluginData.TestResult(idx).Details.DiagnosticRecord.Event;
15+
testDetails(idx).TestResult.Details.DiagnosticRecord.Report = pluginData.TestResult(idx).Details.DiagnosticRecord.Report;
16+
else
17+
testDetails(idx).TestResult.Details = struct();
18+
end
19+
testDetails(idx).TestResult.Name = pluginData.TestResult(idx).Name;
20+
testDetails(idx).TestResult.Passed = pluginData.TestResult(idx).Passed;
21+
testDetails(idx).TestResult.Failed = pluginData.TestResult(idx).Failed;
22+
testDetails(idx).TestResult.Incomplete = pluginData.TestResult(idx).Incomplete;
23+
testDetails(idx).BaseFolder = pluginData.TestSuite(idx).BaseFolder;
1724
end
18-
testDetails(idx).TestResult.Name = pluginData.TestResult(idx).Name;
19-
testDetails(idx).TestResult.Passed = pluginData.TestResult(idx).Passed;
20-
testDetails(idx).TestResult.Failed = pluginData.TestResult(idx).Failed;
21-
testDetails(idx).TestResult.Incomplete = pluginData.TestResult(idx).Incomplete;
22-
testDetails(idx).BaseFolder = pluginData.TestSuite(idx).BaseFolder;
23-
end
2425

25-
try
26-
jsonTestResults = jsonencode(testDetails, "PrettyPrint", true);
27-
testArtifactFile = fullfile(getenv("RUNNER_TEMP"), "matlabTestResults_" + string(datetime('now', 'Format', 'yyyyMMdd_HHmmss_SSS')) + ".json");
28-
[fID, msg] = fopen(testArtifactFile, "w");
29-
if fID == -1
30-
warning("testframework:TestResultsSummaryPlugin:UnableToOpenFile","Unable to open a file required to create the table of test results. (Cause: %s)", msg);
31-
else
32-
closeFile = onCleanup(@()fclose(fID));
33-
fprintf(fID, '%s', jsonTestResults);
26+
try
27+
jsonTestResults = jsonencode(testDetails, "PrettyPrint", true);
28+
testArtifactFile = fullfile(getenv("RUNNER_TEMP"), "matlabTestResults" + getenv("GITHUB_ACTION") + "_" + string(datetime('now', 'Format', 'yyyyMMdd_HHmmss_SSS')) + ".json");
29+
[fID, msg] = fopen(testArtifactFile, "w");
30+
if fID == -1
31+
warning("testframework:TestResultsSummaryPlugin:UnableToOpenFile","Unable to open a file required to create the table of test results. (Cause: %s)", msg);
32+
else
33+
closeFile = onCleanup(@()fclose(fID));
34+
fprintf(fID, '%s', jsonTestResults);
35+
end
36+
catch e
37+
warning("testframework:TestResultsSummaryPlugin:UnableToJsonEncode","Unable to jsonencode test results data. (Cause: %s)", e.message);
3438
end
35-
catch e
36-
warning("testframework:TestResultsSummaryPlugin:UnableToJsonEncode","Unable to jsonencode test results data. (Cause: %s)", e.message);
3739
end
3840

3941
% Invoke the superclass method

src/testResultsSummary.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,17 @@ export interface TestResultsData {
6868
OverallStats: TestStatistics;
6969
}
7070

71-
export function processAndAddTestSummary(runnerTemp: string, runId: string, workspace: string) {
72-
const testResultsData = getTestResults(runnerTemp, workspace);
71+
export function processAndAddTestSummary(runnerTemp: string, runId: string, actionName: string, workspace: string) {
72+
const testResultsData = getTestResults(runnerTemp, actionName, workspace);
7373
const coverageResultsData = getCoverageResults(runnerTemp, runId);
7474
if (testResultsData || coverageResultsData) {
7575
addSummary(testResultsData, coverageResultsData);
7676
}
7777
}
7878

79-
export function getTestResults(runnerTemp: string, workspace: string): TestResultsData | null {
79+
export function getTestResults(runnerTemp: string, actionName: string, workspace: string): TestResultsData | null {
8080
let testResultsData = null;
81-
const filePrefix = `matlabTestResults_`;
81+
const filePrefix = `matlabTestResults${actionName}_`;
8282
const fileSuffix = `.json`;
8383

8484
// Find all test result files matching the pattern

0 commit comments

Comments
 (0)