How can I convert my merged mochawesome JSON report into a CSV/Excel file? The merged JSON report is approximately 300KB and was generated using the following commands in a GitHub Actions workflow:
Run Cypress E2E Tests
- name: Cypress end-to-end tests
uses: cypress-io/github-action@v2
timeout-minutes: 20
with:
install: false
wait-on: 'http://localhost:3000'
wait-on-timeout: 320
start: npm run serve
browser: chrome
headless: true
parallel: true
record: true
group: 'UI - Chrome'
tag: node-14.x,ui
- name: report check
if: always()
run: |
echo "listing root dir"
ls ${{ github.workspace }}
echo "listing cypress dir"
cd ${{ github.workspace }}/cypress/results
ls -R
- name: Upload Cypress HTML Reports
if: always()
uses: actions/upload-artifact@v2
with:
name: cypress-reports${{ matrix.containers }}
path: cypress/results
gen_report: needs: test if: always() runs-on: ubuntu-latest steps: - name: Install dependencies run: npm install mochawesome-merge mochawesome-report-generator - name: Create reports directory run: mkdir reports
- name: Download cypress-reports1
uses: actions/download-artifact@v2
with:
name: cypress-reports1
path: reports/1
- name: Download cypress-reports2
uses: actions/download-artifact@v2
with:
name: cypress-reports2
path: reports/2
- name: Download cypress-reports3
uses: actions/download-artifact@v2
with:
name: cypress-reports3
path: reports/3
- name: Download cypress-reports4
uses: actions/download-artifact@v2
with:
name: cypress-reports4
path: reports/4
- name: Download cypress-reports5
uses: actions/download-artifact@v2
with:
name: cypress-reports5
path: reports/5
- name: Download cypress-reports6
uses: actions/download-artifact@v2
with:
name: cypress-reports6
path: reports/6
- name: Download cypress-reports7
uses: actions/download-artifact@v2
with:
name: cypress-reports7
path: reports/7
- name: Move all reports into one directory
run: |
mkdir -p mochawesome-report
i=0
for file in $(find reports -type f -name mochawesome\*.json); do
filename=$(basename "$file" .json)-"$i".json
mv "$file" mochawesome-report/"$filename"
ls mochawesome-report
i=$((i + 1))
done
- name: Merge and generate reports
run: |
mkdir report
npx mochawesome-merge > report/report.json
jq '.results|=sort_by(.fullFile)' report/report.json > report/output.json
npx marge --inline report/output.json -o report/
- name: Upload report
uses: actions/upload-artifact@v2
with:
name: E2E Test Reports
path: report/
NPM PACKAGE:
"mochawesome": "^7.1.3", "mochawesome-merge": "^4.2.2", "mochawesome-report-generator": "^6.2.0",
CONFIGURATION IN cypress.json
"reporter": "mochawesome", "reporterOptions": { "reportDir": "cypress/results", "overwrite": false, "html": false, "json": true