Capture browser logs on test failure (#22670)

* Capture browser logs

* spit out in logs, simulate failure to test

* remove leftover code

* simulate failure

* Remove forced failure
This commit is contained in:
Stacey Gammon 2018-09-12 20:33:38 -04:00 committed by GitHub
parent 9847e82393
commit 041a4754c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View file

@ -54,7 +54,7 @@ export default function ({ getService, loadTestFile, getPageObjects }) {
loadTestFile(require.resolve('./_dashboard_filter_bar'));
// TODO: unskip when https://github.com/elastic/kibana/issues/20442 is fixed
//loadTestFile(require.resolve('./_dashboard_filtering'));
// loadTestFile(require.resolve('./_dashboard_filtering'));
loadTestFile(require.resolve('./_panel_expand_toggle'));
loadTestFile(require.resolve('./_dashboard_grid'));

View file

@ -48,6 +48,12 @@ export async function FailureDebuggingProvider({ getService }) {
await writeFileAsync(htmlOutputFileName, pageSource);
}
async function logBrowserConsole() {
const browserLogs = await remote.getLogsFor('browser');
const browserOutput = browserLogs.reduce((acc, log) => acc += `${log.message.replace(/\\n/g, '\n')}\n`, '');
log.info(`Browser output is: ${browserOutput}`);
}
async function onFailure(error, test) {
// Replace characters in test names which can't be used in filenames, like *
const name = test.fullTitle().replace(/([^ a-zA-Z0-9-]+)/g, '_');
@ -55,11 +61,16 @@ export async function FailureDebuggingProvider({ getService }) {
await Promise.all([
screenshots.takeForFailure(name),
logCurrentUrl(),
savePageHtml(name)
savePageHtml(name),
logBrowserConsole(),
]);
}
lifecycle
.on('testFailure', onFailure)
.on('testHookFailure', onFailure);
return {
logBrowserConsole
};
}