Skip to content

Commit

Permalink
Normalize file paths during XML generation
Browse files Browse the repository at this point in the history
  • Loading branch information
munderseth committed Jul 10, 2024
1 parent 010b961 commit 543fd95
Show file tree
Hide file tree
Showing 15 changed files with 84 additions and 54 deletions.
12 changes: 8 additions & 4 deletions src/reporter.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ function createTestRecord(test, specRelativePath) {
let imageBasename = testFullName.replaceAll(UNSAFE_REGEX, '').substring(0, 242)+' (failed).png';
let imageFile = path.join(config.screenshotsFolder, specRelativePath, imageBasename);
if (fs.existsSync(imageFile)) {
record['system-out'] = '[[ATTACHMENT|'+imageFile+']]';
record['system-out'] = '[[ATTACHMENT|'+normalizePath(imageFile)+']]';
}
}
break;
Expand All @@ -139,6 +139,10 @@ function createTestRecord(test, specRelativePath) {
return record;
}

function normalizePath(pathString) {
return pathString.split(path.sep).join('/');
}

function CypressXML(runner, options) {
Mocha.reporters.Base.call(this, runner, options);

Expand Down Expand Up @@ -227,7 +231,7 @@ function CypressXML(runner, options) {
errors: 0,
time: (Date.now() - s.suite.timestamp) / 1000,
timestamp: new Date(s.suite.timestamp).toUTCString(),
file: s.suite.file
file: normalizePath(s.suite.file)
}
var testCases = [];
s.tests.forEach( function(t){
Expand All @@ -243,7 +247,7 @@ function CypressXML(runner, options) {
})
var logContent = '';
if (config.logsFolder) {
let relative = suiteStats.file.replace(config.logSpecRoot,'');
let relative = s.suite.file.replace(config.logSpecRoot,'');
relative = relative.substring(0, relative.lastIndexOf('.')) + config.logFileExt;
let logFile = path.join(config.logsFolder, relative);
if (fs.existsSync(logFile)) {
Expand All @@ -253,7 +257,7 @@ function CypressXML(runner, options) {
}
if (suiteStats.failures > 0) {
let videoFile = path.join(config.videosFolder, specRelativePath)+'.mp4';
logContent += '[[ATTACHMENT|' + videoFile +']]';
logContent += '[[ATTACHMENT|' + normalizePath(videoFile) +']]';
}
var suiteRecord = { $: suiteStats, testcase: testCases, 'system-out': logContent };
testSuites.push(suiteRecord);
Expand Down
15 changes: 8 additions & 7 deletions tests/test.desc-desc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');

/**
* Setting
Expand Down Expand Up @@ -40,7 +41,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('TEST1', () => {
Expand All @@ -51,11 +52,11 @@ describe(testName, () => {
expect(suites[1].$.tests).to.equal('3');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+videoFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(videoFile)+']]');
});
describe('Testcases', ()=> {
var testcases;
Expand All @@ -73,7 +74,7 @@ describe(testName, () => {
});
it('"case3" Failure', () => {
var systemout = testcases[2]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile1+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile1)+']]');
})
});
});
Expand All @@ -85,11 +86,11 @@ describe(testName, () => {
expect(suites[2].$.tests).to.equal('3');
});
it('File Name', () => {
expect(suites[2].$.file).to.equal(testFile);
expect(suites[2].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[2]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+videoFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(videoFile)+']]');
});
describe('Testcases', ()=> {
var testcases;
Expand All @@ -107,7 +108,7 @@ describe(testName, () => {
});
it('"case3" Failure', () => {
var systemout = testcases[2]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile2+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile2)+']]');
})
});
});
Expand Down
3 changes: 2 additions & 1 deletion tests/test.desc-fixture-hook-failure.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');

/**
* Setting
Expand Down Expand Up @@ -54,7 +55,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
});
10 changes: 6 additions & 4 deletions tests/test.desc-nest-desc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');


/**
* Setting
Expand Down Expand Up @@ -55,7 +57,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('TEST1', () => {
Expand All @@ -66,11 +68,11 @@ describe(testName, () => {
expect(suites[1].$.tests).to.equal('6');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+videoFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(videoFile)+']]');
});
describe('Testcases', ()=> {
var testcases;
Expand All @@ -97,7 +99,7 @@ describe(testName, () => {
});
it('"NEST -- case3" Failure', () => {
var systemout = testcases[5]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile)+']]');
})
});
});
Expand Down
13 changes: 7 additions & 6 deletions tests/test.desc-nest-nest-desc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');

/**
* Setting
Expand Down Expand Up @@ -57,7 +58,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('TEST1', () => {
Expand All @@ -68,11 +69,11 @@ describe(testName, () => {
expect(suites[1].$.tests).to.equal('9');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+videoFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(videoFile)+']]');
});
describe('Testcases', ()=> {
var testcases;
Expand All @@ -90,7 +91,7 @@ describe(testName, () => {
});
it('"case3" Failure', () => {
var systemout = testcases[2]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile1+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile1)+']]');
});
it('"NEST1 -- case1" name', () => {
expect(testcases[3].$.name).to.equal('NEST1 -- case1');
Expand All @@ -103,7 +104,7 @@ describe(testName, () => {
});
it('"NEST1 -- case3" Failure', () => {
var systemout = testcases[5]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile2+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile2)+']]');
});
it('"NEST1 -- NEST2 -- case1" name', () => {
expect(testcases[6].$.name).to.equal('NEST1 -- NEST2 -- case1');
Expand All @@ -116,7 +117,7 @@ describe(testName, () => {
});
it('"NEST1 -- NEST2 -- case3" Failure', () => {
var systemout = testcases[8]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile3+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile3)+']]');
});

});
Expand Down
6 changes: 4 additions & 2 deletions tests/test.desc-nofailures.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');


/**
* Setting
Expand Down Expand Up @@ -53,7 +55,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('TEST1', () => {
Expand All @@ -64,7 +66,7 @@ describe(testName, () => {
expect(suites[1].$.tests).to.equal('3');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
Expand Down
6 changes: 4 additions & 2 deletions tests/test.desc-nofailures.log.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');


/**
* Setting
Expand Down Expand Up @@ -55,7 +57,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('TEST1', () => {
Expand All @@ -66,7 +68,7 @@ describe(testName, () => {
expect(suites[1].$.tests).to.equal('3');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
Expand Down
7 changes: 4 additions & 3 deletions tests/test.desc-pending.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');

/**
* Setting
Expand Down Expand Up @@ -55,7 +56,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('TEST1', () => {
Expand All @@ -72,11 +73,11 @@ describe(testName, () => {
expect(suites[1].$.skipped).to.equal('3');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+videoFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(videoFile)+']]');
});
describe('Testcases', ()=> {
var testcases;
Expand Down
9 changes: 5 additions & 4 deletions tests/test.desc-testname-chars.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');

/**
* Setting
Expand Down Expand Up @@ -55,7 +56,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('"TEST SUITE" with Quotes and Slash', () => {
Expand All @@ -66,11 +67,11 @@ describe(testName, () => {
expect(suites[1].$.tests).to.equal('3');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+videoFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(videoFile)+']]');
});
describe('Testcases', ()=> {
var testcases;
Expand All @@ -88,7 +89,7 @@ describe(testName, () => {
});
it('"case3" name with quotes and slash with failure', () => {
var systemout = testcases[2]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile)+']]');
})
});
});
Expand Down
9 changes: 5 additions & 4 deletions tests/test.desc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const expect = require("chai").expect;
const parseString = require('xml2js').parseString;
const path = require('path');
const fs = require('fs');
const helpers = require('./test_helper');

/**
* Setting
Expand Down Expand Up @@ -55,7 +56,7 @@ describe(testName, () => {
expect(suites[0].$.tests).to.equal('0');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
});
describe('TEST1', () => {
Expand All @@ -66,11 +67,11 @@ describe(testName, () => {
expect(suites[1].$.tests).to.equal('3');
});
it('File Name', () => {
expect(suites[1].$.file).to.equal(testFile);
expect(suites[1].$.file).to.equal(helpers.normalizePath(testFile));
});
it('System-out', () => {
var systemout = suites[1]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+videoFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(videoFile)+']]');
});
describe('Testcases', ()=> {
var testcases;
Expand All @@ -88,7 +89,7 @@ describe(testName, () => {
});
it('"case3" Failure', () => {
var systemout = testcases[2]['system-out'][0];
expect(systemout).to.equal('[[ATTACHMENT|'+screenshotFile+']]');
expect(systemout).to.equal('[[ATTACHMENT|'+helpers.normalizePath(screenshotFile)+']]');
})
});
});
Expand Down
Loading

0 comments on commit 543fd95

Please sign in to comment.