diff --git a/package.json b/package.json index a1c9cf7ea00d..ba04a393a72b 100644 --- a/package.json +++ b/package.json @@ -154,6 +154,7 @@ "eslint-plugin-react-hooks": "4.2.0", "eslint-plugin-vue": "7.18.0", "execa": "4.0.0", + "fast-xml-parser": "^4.5.1", "filesize": "10.1.1", "fs-extra": "9.1.0", "getenv": "^1.0.0", diff --git a/scripts/verify-mocha-results.js b/scripts/verify-mocha-results.js index b830b41ed092..5d4f8d4a3b9c 100644 --- a/scripts/verify-mocha-results.js +++ b/scripts/verify-mocha-results.js @@ -10,35 +10,25 @@ const fs = require('fs').promises const la = require('lazy-ass') const path = require('path') const { readCircleEnv } = require('./circle-env') - -// mocha regex -const MOCHA_REGEX = // -// vitest regex -const VITEST_REGEX = // +const { XMLParser } = require('fast-xml-parser') const REPORTS_PATH = '/tmp/cypress/junit' const expectedResultCount = Number(process.argv[process.argv.length - 1]) -const parseMochaResult = (xml) => { - const [name, time, tests, failures, skipped] = MOCHA_REGEX.exec(xml).slice(1) +const parseResult = (xml) => { + const { testsuites } = new XMLParser({ + ignoreAttributes: false, + attributeNamePrefix: '', + }).parse(xml) - return { - name, time, tests: Number(tests), failures: Number(failures), skipped: Number(skipped || 0), - } -} -const parseVitestResult = (xml) => { - const [name, tests, failures, , time, skipped] = VITEST_REGEX.exec(xml).slice(1) + const { name, time, tests, failures, skipped } = testsuites return { name, time, tests: Number(tests), failures: Number(failures), skipped: Number(skipped || 0), } } -const parseResult = (xml) => { - return MOCHA_REGEX.test(xml) ? parseMochaResult(xml) : parseVitestResult(xml) -} - const total = { tests: 0, failures: 0, skipped: 0 } console.log(`Looking for reports in ${REPORTS_PATH}`) diff --git a/yarn.lock b/yarn.lock index efab20329721..ddcf63caa1e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16645,10 +16645,10 @@ fast-xml-parser@4.2.5: dependencies: strnum "^1.0.5" -fast-xml-parser@^4.4.1: - version "4.5.0" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz#2882b7d01a6825dfdf909638f2de0256351def37" - integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== +fast-xml-parser@^4.4.1, fast-xml-parser@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz#a7e665ff79b7919100a5202f23984b6150f9b31e" + integrity sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w== dependencies: strnum "^1.0.5"