burzum /
vue-comments
| 1 | //require('env2')('.env'); // optionally store your Evironment Variables in .env |
||
| 2 | |||
| 3 | const seleniumServer = require("selenium-server"); |
||
| 4 | const chromedriver = require("chromedriver"); |
||
| 5 | const SCREENSHOT_PATH = "./test/e2e/screenshots/"; |
||
| 6 | |||
| 7 | // we use a nightwatch.conf.js file so we can include comments and helper functions |
||
| 8 | module.exports = { |
||
| 9 | "src_folders": [ |
||
| 10 | "test/e2e/specs"// Where you are storing your Nightwatch e2e tests |
||
| 11 | ], |
||
| 12 | "output_folder": "./test/e2e/reports", // reports (test outcome) output by nightwatch |
||
| 13 | "end_session_on_fail": true, |
||
| 14 | "skip_testcases_on_fail": false, |
||
| 15 | "abortOnAssertionFailure": false, |
||
| 16 | "selenium": { |
||
| 17 | "start_process": true, // tells nightwatch to start/stop the selenium process |
||
| 18 | "server_path": seleniumServer.path, |
||
| 19 | "host": "127.0.0.1", |
||
| 20 | "port": 4444, // standard selenium port |
||
| 21 | "cli_args": { |
||
| 22 | "webdriver.chrome.driver": chromedriver.path |
||
| 23 | } |
||
| 24 | }, |
||
| 25 | "test_settings": { |
||
| 26 | "default": { |
||
| 27 | "screenshots": { |
||
| 28 | "enabled": true, // if you want to keep screenshots |
||
| 29 | "path": SCREENSHOT_PATH, // save screenshots here |
||
| 30 | "on_failure" : true, |
||
| 31 | "on_error" : true, |
||
| 32 | }, |
||
| 33 | "globals": { |
||
| 34 | "waitForConditionTimeout": 5000 // sometimes internet is slow so wait. |
||
| 35 | }, |
||
| 36 | "desiredCapabilities": { // use Chrome as the default browser for tests |
||
| 37 | "browserName": "chrome" |
||
| 38 | } |
||
| 39 | }, |
||
| 40 | "chrome": { |
||
| 41 | "desiredCapabilities": { |
||
| 42 | "browserName": "chrome", |
||
| 43 | "javascriptEnabled": true // turn off to test progressive enhancement |
||
| 44 | } |
||
| 45 | } |
||
| 46 | }, |
||
| 47 | afterEach: function (client, done) { |
||
| 48 | var weHaveFailures = client.currentTest.results.errors > 0 || client.currentTest.results.failed > 0; |
||
| 49 | |||
| 50 | console.log(weHaveFailures); |
||
|
0 ignored issues
–
show
Debugging Code
introduced
by
Loading history...
|
|||
| 51 | if (weHaveFailures) { |
||
| 52 | if (!client.sessionId) { |
||
| 53 | console.log('Session already ended.'); |
||
| 54 | done(); |
||
| 55 | return; |
||
| 56 | } |
||
| 57 | |||
| 58 | var fileName = getFileName(client.currentTest.name); |
||
| 59 | client.saveScreenshot(fileName, function (result) { |
||
| 60 | if (!result || result.status !== 0) { |
||
| 61 | console.log('Error saving screenshot...', result); |
||
|
0 ignored issues
–
show
|
|||
| 62 | } |
||
| 63 | client.end(done); |
||
| 64 | }); |
||
| 65 | } else { |
||
| 66 | client.end(done); |
||
| 67 | } |
||
| 68 | } |
||
| 69 | } |
||
| 70 | |||
| 71 | function padLeft(count) { // theregister.co.uk/2016/03/23/npm_left_pad_chaos/ |
||
| 72 | return count < 10 ? '0' + count : count.toString(); |
||
| 73 | } |
||
| 74 | |||
| 75 | var FILECOUNT = 0; // "global" screenshot file count |
||
| 76 | /** |
||
| 77 | * The default is to save screenshots to the root of your project even though |
||
| 78 | * there is a screenshots path in the config object above! ... so we need a |
||
| 79 | * function that returns the correct path for storing our screenshots. |
||
| 80 | * While we're at it, we are adding some meta-data to the filename, specifically |
||
| 81 | * the Platform/Browser where the test was run and the test (file) name. |
||
| 82 | */ |
||
| 83 | function imgpath(browser) { |
||
| 84 | var a = browser.options.desiredCapabilities; |
||
| 85 | var meta = [a.platform]; |
||
| 86 | meta.push(a.browserName ? a.browserName : 'any'); |
||
| 87 | meta.push(a.version ? a.version : 'any'); |
||
| 88 | meta.push(a.name); // this is the test filename so always exists. |
||
| 89 | var metadata = meta.join('~').toLowerCase().replace(/ /g, ''); |
||
| 90 | return SCREENSHOT_PATH + metadata + '_' + padLeft(FILECOUNT++) + '_'; |
||
| 91 | } |
||
| 92 | |||
| 93 | module.exports.imgpath = imgpath; |
||
| 94 | module.exports.SCREENSHOT_PATH = SCREENSHOT_PATH; |
||
| 95 |