Cypress test logging improvements
Print full test name in beforeEach and afterEach Hide xhr requests Hide repeated actual and expected values on passed assertions Add information to failure message Signed-off-by: Neil Guertin <neil.guertin@collabora.com> Change-Id: Ic1a20481c05afb05b9c29d0bd428b59615d49dc7
This commit is contained in:
parent
3bbedaac01
commit
d1822e4298
2 changed files with 43 additions and 9 deletions
|
@ -510,7 +510,6 @@ function reload(fileName, subFolder, noFileCopy, isMultiUser, subsequentLoad, ha
|
|||
|
||||
// noRename - whether or not to give the file a unique name, if noFileCopy is false.
|
||||
function beforeAll(fileName, subFolder, noFileCopy, isMultiUser, subsequentLoad, hasInteractionBeforeLoad, noRename) {
|
||||
cy.log('Starting test: ' + Cypress.spec.relative + ' / ' + Cypress.currentTest.titlePath.join(' / '));
|
||||
// Set defaults here in order to remove checks from cy.cGet function.
|
||||
cy.cSetActiveFrame('#coolframe');
|
||||
|
||||
|
@ -519,7 +518,6 @@ function beforeAll(fileName, subFolder, noFileCopy, isMultiUser, subsequentLoad,
|
|||
|
||||
function afterAll(fileName, testState) {
|
||||
closeDocument(fileName, testState);
|
||||
cy.log('Finished test: ' + Cypress.spec.relative + ' / ' + Cypress.currentTest.titlePath.join(' / '));
|
||||
}
|
||||
|
||||
// This method is intended to call after each test case.
|
||||
|
|
|
@ -1,11 +1,40 @@
|
|||
/* -*- js-indent-level: 8 -*- */
|
||||
/* global require cy Cypress */
|
||||
/* global require cy Cypress beforeEach afterEach */
|
||||
|
||||
require('cypress-wait-until');
|
||||
require('cypress-file-upload');
|
||||
import installLogsCollector from 'cypress-terminal-report/src/installLogsCollector';
|
||||
|
||||
installLogsCollector();
|
||||
|
||||
beforeEach(function() {
|
||||
cy.log('Starting test: ' + getFullTestName());
|
||||
});
|
||||
|
||||
// This afterEach must be before installLogsCollector, otherwise the
|
||||
// cypress-terminal-report afterEach gets called first, and so this log does
|
||||
// not get printed
|
||||
afterEach(function() {
|
||||
cy.log('Finishing test: ' + getFullTestName());
|
||||
});
|
||||
|
||||
installLogsCollector({
|
||||
// Filter xhr requests from log
|
||||
filterLog: function(log) {
|
||||
var type = log[0];
|
||||
return type !== 'cy:xhr';
|
||||
},
|
||||
// Filter assertion values when assertion passes
|
||||
processLog: function(log) {
|
||||
var type = log[0];
|
||||
var message = log[1];
|
||||
var severity = log[2];
|
||||
if (type == 'cy:command' && message.startsWith('assert') && severity !== 'error') {
|
||||
return [type,message.split('\n')[0],severity];
|
||||
} else {
|
||||
return log;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (Cypress.env('INTEGRATION') === 'php-proxy') {
|
||||
Cypress.Server.defaults({
|
||||
|
@ -34,11 +63,14 @@ if (Cypress.env('INTEGRATION') === 'nextcloud') {
|
|||
}
|
||||
|
||||
Cypress.on('fail', function(error) {
|
||||
Cypress.log({ name:'fail:',
|
||||
message: error.codeFrame.absoluteFile + ':'
|
||||
+ error.codeFrame.line + ':'
|
||||
+ error.codeFrame.column + '\n'
|
||||
+ error.codeFrame.frame });
|
||||
var message = '\n';
|
||||
message += 'Test failed: ' + getFullTestName() + '\n';
|
||||
message += '\n';
|
||||
message += error.message + '\n';
|
||||
message += '\n';
|
||||
message += error.codeFrame.absoluteFile + ':' + error.codeFrame.line + ':' + error.codeFrame.column + '\n';
|
||||
message += error.codeFrame.frame;
|
||||
Cypress.log({name: 'fail:', message: message});
|
||||
|
||||
//https://stackoverflow.com/a/63519375/1592055
|
||||
//returning false here prevents Cypress from failing the test */
|
||||
|
@ -154,3 +186,7 @@ Cypress.Commands.add('cGet', function(selector, options) {
|
|||
.its('0.contentDocument', {log: false});
|
||||
}
|
||||
});
|
||||
|
||||
function getFullTestName() {
|
||||
return Cypress.spec.relative + ' / ' + Cypress.currentTest.titlePath.join(' / ');
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue