|
| 1 | +import reporters = require('jasmine-reporters'); |
| 2 | +import HtmlReporter = require('protractor-beautiful-reporter'); |
| 3 | +import { BrowserHelper } from 'topcoder-testing-lib'; |
| 4 | + |
| 5 | +declare global { |
| 6 | + namespace NodeJS { |
| 7 | + interface IGlobal { |
| 8 | + document: Document; |
| 9 | + window: Window; |
| 10 | + navigator: Navigator; |
| 11 | + forgotPasswordMailListener: any; |
| 12 | + registrationMailListener: any; |
| 13 | + } |
| 14 | + } |
| 15 | +} |
| 16 | + |
| 17 | +exports.config = { |
| 18 | + setupFilesAfterEnv: ['./jest.setup.js'], |
| 19 | + |
| 20 | + // Capabilities to be passed to the webdriver instance. |
| 21 | + capabilities: { |
| 22 | + browserName: 'chrome', |
| 23 | + chromeOptions: { |
| 24 | + args: [ |
| 25 | + '--headless', |
| 26 | + '--disable-gpu', |
| 27 | + '--no-sandbox', |
| 28 | + '--window-size=1325x744', |
| 29 | + 'disable-infobars' |
| 30 | + ], |
| 31 | + 'excludeSwitches': ['enable-automation'], |
| 32 | + prefs: { |
| 33 | + 'credentials_enable_service': false, |
| 34 | + 'profile': { |
| 35 | + 'password_manager_enabled': false |
| 36 | + } |
| 37 | + } |
| 38 | + }, |
| 39 | + }, |
| 40 | + |
| 41 | + directConnect: true, |
| 42 | + |
| 43 | + // Framework to use. Jasmine is recommended. |
| 44 | + framework: 'jasmine2', |
| 45 | + |
| 46 | + specs: [ |
| 47 | + '../temp/test-suites/dashboard-flow/dashboard.spec.js', |
| 48 | + '../temp/test-suites/create-challenge-flow/create-challenge.spec.js', |
| 49 | + ], |
| 50 | + |
| 51 | + // Options to be passed to Jasmine. |
| 52 | + jasmineNodeOpts: { |
| 53 | + defaultTimeoutInterval: 1200000, // 20 minutes |
| 54 | + isVerbose: true, |
| 55 | + showColors: true, |
| 56 | + }, |
| 57 | + |
| 58 | + onPrepare: () => { |
| 59 | + BrowserHelper.maximize(); |
| 60 | + const junitReporter = new reporters.JUnitXmlReporter({ |
| 61 | + consolidateAll: false, |
| 62 | + savePath: 'test-results', |
| 63 | + }); |
| 64 | + jasmine.getEnv().addReporter(junitReporter); |
| 65 | + jasmine.getEnv().addReporter( |
| 66 | + new HtmlReporter({ |
| 67 | + baseDirectory: 'test-results', |
| 68 | + docName: 'TestResult.html', // Change html report file name |
| 69 | + docTitle: 'Test Automation Execution Report', // Add title for the html report |
| 70 | + gatherBrowserLogs: true, // Store Browser logs |
| 71 | + jsonsSubfolder: 'jsons', // JSONs Subfolder |
| 72 | + preserveDirectory: false, // Preserve base directory |
| 73 | + screenshotsSubfolder: 'screenshots', |
| 74 | + takeScreenShotsForSkippedSpecs: true, // Screenshots for skipped test cases |
| 75 | + takeScreenShotsOnlyForFailedSpecs: true, // Screenshots only for failed test cases |
| 76 | + }).getJasmine2Reporter() |
| 77 | + ); |
| 78 | + }, |
| 79 | +}; |
0 commit comments