Skip to content

Commit

Permalink
fix script name, script testcase name
Browse files Browse the repository at this point in the history
  • Loading branch information
miguelangarano committed Nov 27, 2024
1 parent b8ab8b5 commit 9e73388
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 46 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/sharded-vitest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
run: npx vitest --run --shard=${{ matrix.shard }}/${{ matrix.total-shards }} vitest-sharded-example/tests/** --reporter=junit --outputFile=./vitest-sharded-example/results-${{ matrix.shard }}.xml

- name: Combine Vitest Sharded results
run: node ./scripts/combine-results.js --reports-dir vitest-sharded-example --output-file vitest-sharded-example/currents.results.xml
run: node ./scripts/combineResults.js --reports-dir vitest-sharded-example --output-file vitest-sharded-example/currents.results.xml

- name: Generate Instance files
run: node scripts/junitXmlToInstanceJson.js --input vitest-sharded-example/currents.results.xml --output vitest-sharded-example/instances
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
"gen-instance-vitest": "node scripts/junitXmlToInstanceJson.js --input vitest-example/currents.results.xml --output vitest-example/instances",
"report-results-vitest": "node scripts/uploadResults.js --report-dir vitest-example",
"vitest:full": "npm run test-vitest || true && npm run gen-instance-vitest && npm run report-results-vitest",
"test-wdio": "npx wdio run wdio-example/wdio.conf.js || true && node ./scripts/combine-results.js --reports-dir wdio-example --output-file wdio-example/currents.results.xml",
"test-wdio": "npx wdio run wdio-example/wdio.conf.js || true && node ./scripts/combineResults.js --reports-dir wdio-example --output-file wdio-example/currents.results.xml",
"gen-instance-wdio": "node scripts/junitXmlToInstanceJson.js --input wdio-example/currents.results.xml --output wdio-example/instances",
"report-results-wdio": "node scripts/uploadResults.js --report-dir wdio-example",
"wdio:full": "npm run test-wdio || true && npm run gen-instance-wdio && npm run report-results-wdio",
"test-cy": "npx cypress run --config-file cy-example/cypress.config.js || true && node ./scripts/combine-results.js --reports-dir cy-example --output-file cy-example/currents.results.xml",
"test-cy": "npx cypress run --config-file cy-example/cypress.config.js || true && node ./scripts/combineResults.js --reports-dir cy-example --output-file cy-example/currents.results.xml",
"gen-instance-cy": "node scripts/junitXmlToInstanceJson.js --input cy-example/currents.results.xml --output cy-example/instances",
"report-results-cy": "node scripts/uploadResults.js --report-dir cy-example",
"cy:full": "npm run test-cy || true && npm run gen-instance-cy && npm run report-results-cy"
Expand Down
36 changes: 24 additions & 12 deletions scripts/combine-results.js → scripts/combineResults.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,28 @@ const xml2js = require("xml2js");
const path = require("path");

const args = process.argv.slice(2);
const reportsDirIndex = args.indexOf('--reports-dir');
const outputFileIndex = args.indexOf('--output-file');
const reportsDirIndex = args.indexOf("--reports-dir");
const outputFileIndex = args.indexOf("--output-file");

const reportsDir = reportsDirIndex !== -1 ? args[reportsDirIndex + 1] : "wdio-example";
const outputFile = outputFileIndex !== -1 ? args[outputFileIndex + 1] : "wdio-example/combined-results.xml";
const reportsDir =
reportsDirIndex !== -1 ? args[reportsDirIndex + 1] : "wdio-example";
const outputFile =
outputFileIndex !== -1
? args[outputFileIndex + 1]
: "wdio-example/combined-results.xml";

if (reportsDirIndex === -1 || outputFileIndex === -1) {
console.log('Usage: node script.js --reports-dir <directory> --output-file <file>');
console.log(`Using defaults: --reports-dir="${reportsDir}" --output-file="${outputFile}"`);
console.log(
"Usage: node script.js --reports-dir <directory> --output-file <file>"
);
console.log(
`Using defaults: --reports-dir="${reportsDir}" --output-file="${outputFile}"`
);
}

async function processTestSuites(testsuites) {
const processedSuites = [];

for (let i = 0; i < testsuites.length; i++) {
const currentSuite = testsuites[i];
const nextSuite = testsuites[i + 1];
Expand All @@ -43,17 +51,21 @@ async function combineResults() {

let combinedTestsuites = {
testsuites: {
$: {},
testsuite: []
}
$: {
name: "vitest tests",
},
testsuite: [],
},
};

for (const file of files) {
const content = fs.readFileSync(path.join(reportsDir, file), "utf-8");
const result = await xml2js.parseStringPromise(content);

if (result.testsuites && result.testsuites.testsuite) {
const processedSuites = await processTestSuites(result.testsuites.testsuite);
const processedSuites = await processTestSuites(
result.testsuites.testsuite
);
combinedTestsuites.testsuites.testsuite.push(...processedSuites);
}
}
Expand All @@ -69,4 +81,4 @@ async function combineResults() {
console.log("Results combined into:", outputFile);
}

combineResults().catch(console.error);
combineResults().catch(console.error);
32 changes: 16 additions & 16 deletions vitest-example/currents.results.xml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<testsuites name="vitest tests" tests="13" failures="2" errors="0" time="0.28">
<testsuite name="vitest-example/tests/numberUtils.spec.js" timestamp="2024-11-25T16:54:47.102Z" hostname="Miguels-Laptop.local" tests="7" failures="0" errors="0" skipped="0" time="0.007122709">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; calculates average of positive numbers" time="0.000810916">
<testsuites name="vitest tests" tests="13" failures="2" errors="0" time="0.339">
<testsuite name="vitest-example/tests/numberUtils.spec.js" timestamp="2024-11-27T15:47:40.203Z" hostname="Miguels-Laptop.local" tests="7" failures="0" errors="0" skipped="0" time="0.0078447084">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; calculates average of positive numbers" time="0.0009313755">
</testcase>
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles array with single number" time="0.000148916">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles array with single number" time="0.0001673756">
</testcase>
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles empty array" time="0.000068583">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles empty array" time="0.0000655832">
</testcase>
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles negative numbers" time="0.000069084">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles negative numbers" time="0.0000684576">
</testcase>
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles decimal numbers" time="0.000162458">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; handles decimal numbers" time="0.0002002916">
</testcase>
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; returns 0 for invalid input" time="0.00006825">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; returns 0 for invalid input" time="0.000073041">
</testcase>
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; timeout" time="0.005171916">
<testcase classname="vitest-example/tests/numberUtils.spec.js" name="calculateAverage &gt; timeout" time="0.0056372919">
<system-out>
COUNT:: 1 1
TIMEO::
Expand All @@ -25,16 +25,16 @@ DEL::
</system-out>
</testcase>
</testsuite>
<testsuite name="vitest-example/tests/stringUtils.spec.js" timestamp="2024-11-25T16:54:47.104Z" hostname="Miguels-Laptop.local" tests="6" failures="2" errors="0" skipped="0" time="0.007103792">
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; capitalizes first letter of each word" time="0.000799792">
<testsuite name="vitest-example/tests/stringUtils.spec.js" timestamp="2024-11-27T15:47:40.206Z" hostname="Miguels-Laptop.local" tests="6" failures="2" errors="0" skipped="0" time="0.0081894999">
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; capitalizes first letter of each word" time="0.0009870834">
</testcase>
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles already capitalized words" time="0.000095958">
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles already capitalized words" time="0.0001754999">
</testcase>
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles empty string" time="0.000067417">
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles empty string" time="0.0000664997">
</testcase>
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles single word" time="0.000128">
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles single word" time="0.0000707912">
</testcase>
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles mixed case input" time="0.004466708">
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; handles mixed case input" time="0.0051186256">
<failure message="expected &apos;Hello World&apos; to be &apos;Hello World!&apos; // Object.is equality" type="AssertionError">
AssertionError: expected &apos;Hello World&apos; to be &apos;Hello World!&apos; // Object.is equality

Expand Down Expand Up @@ -68,7 +68,7 @@ Received: &quot;Hello World&quot;
❯ vitest-example/tests/stringUtils.spec.js:22:44
</failure>
</testcase>
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; errors on number received" time="0.000910709">
<testcase classname="vitest-example/tests/stringUtils.spec.js" name="capitalizeWords &gt; errors on number received" time="0.0010262918">
<failure message="str.split is not a function" type="TypeError">
TypeError: str.split is not a function
❯ Module.capitalizeWords vitest-example/stringUtils.js:4:6
Expand Down
30 changes: 15 additions & 15 deletions vitest-sharded-example/currents.results.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<testsuites>
<testsuite name="vitest-sharded-example/tests/stringUtils.spec.js" timestamp="2024-11-27T15:31:38.685Z" hostname="Miguels-Laptop.local" tests="6" failures="2" errors="0" skipped="0" time="0.0070791655">
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > capitalizes first letter of each word" time="0.0013899584"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles already capitalized words" time="0.0001815844"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles empty string" time="0.0000715828"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles single word" time="0.0000698757"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles mixed case input" time="0.0040080833">
<testsuites name="vitest tests">
<testsuite name="vitest-sharded-example/tests/stringUtils.spec.js" timestamp="2024-11-27T15:44:32.148Z" hostname="Miguels-Laptop.local" tests="6" failures="2" errors="0" skipped="0" time="0.0063649998">
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > capitalizes first letter of each word" time="0.0009567499"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles already capitalized words" time="0.0001602077"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles empty string" time="0.0000685005"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles single word" time="0.0000665417"/>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > handles mixed case input" time="0.0038440428">
<failure message="expected 'Hello World' to be 'Hello World!' // Object.is equality" type="AssertionError">
AssertionError: expected 'Hello World' to be 'Hello World!' // Object.is equality

Expand All @@ -15,20 +15,20 @@ Received: "Hello World"
❯ vitest-sharded-example/tests/stringUtils.spec.js:22:44
</failure>
</testcase>
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > errors on number received" time="0.0005920839">
<testcase classname="vitest-sharded-example/tests/stringUtils.spec.js" name="capitalizeWords > errors on number received" time="0.0005393753">
<failure message="str.split is not a function" type="TypeError">
TypeError: str.split is not a function
❯ Module.capitalizeWords vitest-sharded-example/stringUtils.js:4:6
❯ vitest-sharded-example/tests/stringUtils.spec.js:26:12
</failure>
</testcase>
</testsuite>
<testsuite name="vitest-sharded-example/tests/numberUtils.spec.js" timestamp="2024-11-27T15:31:39.294Z" hostname="Miguels-Laptop.local" tests="6" failures="0" errors="0" skipped="0" time="0.002043541">
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > calculates average of positive numbers" time="0.0008744173"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles array with single number" time="0.0001640005"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles empty array" time="0.0000665836"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles negative numbers" time="0.0000643749"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles decimal numbers" time="0.0001732502"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > returns 0 for invalid input" time="0.0000663748"/>
<testsuite name="vitest-sharded-example/tests/numberUtils.spec.js" timestamp="2024-11-27T15:44:33.031Z" hostname="Miguels-Laptop.local" tests="6" failures="0" errors="0" skipped="0" time="0.0034581671">
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > calculates average of positive numbers" time="0.0010190001"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles array with single number" time="0.0001721258"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles empty array" time="0.0000664587"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles negative numbers" time="0.0000648756"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > handles decimal numbers" time="0.0001836252"/>
<testcase classname="vitest-sharded-example/tests/numberUtils.spec.js" name="calculateAverage > returns 0 for invalid input" time="0.0000692921"/>
</testsuite>
</testsuites>

0 comments on commit 9e73388

Please sign in to comment.