Skip to content

Commit 833a7d5

Browse files
feat: parse test manager outputs
1 parent 713801c commit 833a7d5

1 file changed

Lines changed: 55 additions & 4 deletions

File tree

action.yml

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ inputs:
3636
outputs:
3737
testExecutionLinks:
3838
description: 'Outputs a comma-separated list of Orchestrator links for viewing test results'
39-
value: ${{ steps.parse_test_results.outputs.testExecutionLinks }}
39+
value: ${{ steps.parse_test_results.outputs.testExecutionLinks || steps.parse_test_results_tm.outputs.testExecutionLinks }}
4040
testResults:
4141
description: 'Markdown formatted table listing the tests that have been run and whether they passed or failed'
42-
value: ${{ steps.parse_test_results.outputs.testResults }}
42+
value: ${{ steps.parse_test_results.outputs.testResults || steps.parse_test_results_tm.outputs.testResults }}
4343
containsPublishableTestCases:
4444
description: 'Boolean value indicating whether any test cases set as publishable were found in the repository'
4545
value: ${{ steps.run_tests.outputs.containsPublishableTestCases }}
@@ -205,8 +205,8 @@ runs:
205205
fi
206206
207207
- id: parse_test_results
208-
name: Parse test results
209-
if: always()
208+
name: Parse test results (Standard)
209+
if: always() && inputs.projectKey == ''
210210
shell: bash
211211
run: |
212212
testResults="${{ steps.run_tests.outputs.testResults }}"
@@ -247,3 +247,54 @@ runs:
247247
248248
echo "$testExecutionLinks"
249249
echo "$testResults"
250+
251+
- id: parse_test_results_test_manager
252+
name: Parse test results (Test Manager)
253+
if: always() && inputs.projectKey != ''
254+
shell: bash
255+
run: |
256+
testResults="${{ steps.run_tests.outputs.testResults }}"
257+
testExecutionUrls=""
258+
testResultsFolder="${{ steps.run_tests.outputs.testResultsFolder }}"
259+
folderId="${{ steps.get_folder_id.outputs.folderId }}"
260+
261+
# Loop through all JSON files in the test results folder
262+
while IFS= read -r testResultFilePath; do
263+
echo "Processing test result file: $testResultFilePath"
264+
testResultData=$(cat "$testResultFilePath" | jq '.')
265+
266+
# Loop through each TestManagerTestSetRuns entry
267+
while IFS= read -r testSetRun; do
268+
testSetRunId=$(echo "$testSetRun" | jq -r '.Id')
269+
testSetRunName=$(echo "$testSetRun" | jq -r '.Name')
270+
testSetExecutionLink="${{ inputs.orchestratorUrl }}${{ inputs.orchestratorLogicalName }}/${{ inputs.orchestratorTenant }}/testmanager_/${{ inputs.projectKey }}/testexecutions/$testSetRunId"
271+
272+
echo "Test execution can be viewed in Test Manager by clicking this link: $testSetExecutionLink"
273+
274+
testResultsTable="| Test case | Result |\n| :-- | :-- |"
275+
# Loop through each TestCaseExecution within this TestManagerTestSetRun
276+
while IFS= read -r testCase; do
277+
testName=$(echo "$testCase" | jq -r '.Name')
278+
testCaseId=$(echo "$testCase" | jq -r '.TestCaseId')
279+
testStatus=$(echo "$testCase" | jq -r '.Status')
280+
testCaseLink="${{ inputs.orchestratorUrl }}${{ inputs.orchestratorLogicalName }}/${{ inputs.orchestratorTenant }}/testmanager_/${{ inputs.projectKey }}/testexecution-results/$testSetRunId/$testCaseId"
281+
testResultsTable+="\n| [$testName]($testCaseLink) | $(if [ "$testStatus" == "Passed" ]; then echo ":white_check_mark: Passed"; else echo ":x: Failed"; fi) |"
282+
done <<< $(echo "$testSetRun" | jq -c '.TestCaseExecutions[]')
283+
284+
testResults+="\n### [Test results for $testSetRunName]($testSetExecutionLink)\n$testResultsTable"
285+
286+
if [ -z "$testExecutionURLs" ]; then
287+
testExecutionURLs="$testSetExecutionLink"
288+
else
289+
testExecutionURLs+=", $testSetExecutionLink"
290+
fi
291+
done <<< $(echo "$testResultData" | jq -c '.TestManagerTestSetRuns[]')
292+
done < <(find "$testResultsFolder" -type f -name "*.json")
293+
294+
echo "testExecutionLinks=$testExecutionURLs" >> $GITHUB_OUTPUT
295+
echo -e "testResults<<EOF\n$testResults\nEOF" >> $GITHUB_OUTPUT
296+
297+
echo -e "$testResults" >> $GITHUB_STEP_SUMMARY
298+
299+
echo "$testExecutionLinks"
300+
echo "$testResults"

0 commit comments

Comments
 (0)