ACA Run the test against the remote env (#1669)

* Run the test against the remote env

* Use remote user

* exclude e2e and raise issue

* Exlude more

* small change to trigger travis

* add api method to get totalItems of various endpoints

* lint fix

* remove tests from excluded to see what fails

* - fix some issues with the screenshot plugin
- add methods to get total items for some endpoints
- fix some waitForApi calls to consider initial total items number
- sortByModified descending in order to find the item needed by the test when having items on multiple pages

* Try to fix screenshots

* a few more fixes

* Upload screenshots

* a few more fixes

* Delete e2e-output-${retry} at the end

* delete unused variable

* some changes

* lint

* try one more fix

* Try to fix retry

* a few more fixes

* Try to fix retry

* some more fixes

* Fix "on Recent Files" suite

* Move "on Search Results" at the beginning of the class in order to avoid waitForApi:catch

* Empty commit

* Empty commit

* Empty commit

* Run e2e with lite-server

* Exclude protractor report folder

* Remove useless config

* change browser size

* no message

* one more try

* Empty commit

* try to maximize

* fix upload Recent files tests

* revert maximizing the browser

* don't "Run e2e with lite-server"

* fix mark-favorite tests

* few more fixes

* fix viewer and share tests

* test the lite server with retry

* Verify suites with lite server

* some final fixes

* Try to use httpserver

* Print the file and use http server

* Use http-server to fix protractor retry

* more fixes

* forgot a space :|

* remove extra job not needed anymore
rename test data into more specific

* play with the screenshots

* try new run

* trigger one more run

* a few more little fixes

* Fix comments

* Remove comment

* Fix lint error

Co-authored-by: Adina Parpalita <Adina.Parpalita@ness.com>
Co-authored-by: Cristina Jalba <cristina.jalba@ness.com>
Co-authored-by: iuliaib <iulia.burca@ness.com>
This commit is contained in:
Maurizio Vitale
2020-09-18 12:01:55 +01:00
committed by GitHub
parent 88e94a4ec9
commit 9b0c31073a
53 changed files with 1270 additions and 787 deletions

View File

@@ -2,18 +2,19 @@
// https://github.com/angular/protractor/blob/master/lib/config.ts
const path = require('path');
const {SpecReporter} = require('jasmine-spec-reporter');
const { SpecReporter } = require('jasmine-spec-reporter');
const fs = require('fs');
const resolve = require('path').resolve;
const logger = require('./tools/helpers/logger');
const retry = require('protractor-retry').retry;
const retry = require('protractor-retry-angular-cli').retry;
const { uploadScreenshot } = require('./e2e/e2e-config/utils/upload-output');
require('dotenv').config({path: process.env.ENV_FILE});
require('dotenv').config({ path: process.env.ENV_FILE });
const SmartRunner = require('protractor-smartrunner');
const projectRoot = path.resolve(__dirname);
const downloadFolder = path.join(__dirname, 'e2e-downloads');
const screenshotsFolder = path.resolve(__dirname, 'e2e-output');
const e2eFolder = path.resolve(projectRoot, 'e2e');
const E2E_HOST = process.env.E2E_HOST || 'http://localhost:4200';
const BROWSER_RUN = process.env.BROWSER_RUN;
@@ -47,7 +48,7 @@ const appConfig = {
};
exports.config = {
allScriptsTimeout: 50000,
allScriptsTimeout: 150000,
params: {
config: appConfig,
@@ -112,7 +113,6 @@ exports.config = {
SELENIUM_PROMISE_MANAGER: false,
capabilities: {
loggingPrefs: {
browser: 'ALL' // "OFF", "SEVERE", "WARNING", "INFO", "CONFIG", "FINE", "FINER", "FINEST", "ALL".
},
@@ -121,30 +121,32 @@ exports.config = {
maxInstances: MAXINSTANCES,
shardTestFiles: true,
shardTestFiles: MAXINSTANCES > 1,
chromeOptions: {
prefs: {
'credentials_enable_service': false,
'download': {
'prompt_for_download': false,
'directory_upgrade': true,
'default_directory': downloadFolder
credentials_enable_service: false,
download: {
prompt_for_download: false,
directory_upgrade: true,
default_directory: downloadFolder
},
'browser': {
'setDownloadBehavior': {
'behavior': 'allow',
'downloadPath': downloadFolder
browser: {
setDownloadBehavior: {
behavior: 'allow',
downloadPath: downloadFolder
}
}
},
args: ['--incognito',
args: [
'--incognito',
`--window-size=${width},${height}`,
'--disable-gpu',
'--no-sandbox',
'--disable-web-security',
'--disable-browser-side-navigation',
...(BROWSER_RUN === true ? [] : ['--headless'])]
...(BROWSER_RUN === true ? [] : ['--headless'])
]
}
},
@@ -152,27 +154,31 @@ exports.config = {
baseUrl: E2E_HOST,
getPageTimeout: 50000,
getPageTimeout: 150000,
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 100000,
print: function () {
},
...(process.env.CI ? SmartRunner.withOptionalExclusions(resolve(__dirname, './e2e/protractor.excludes.json')) : {})
defaultTimeoutInterval: 150000,
includeStackTrace: true,
print: function () {},
...SmartRunner.withOptionalExclusions(resolve(__dirname, './e2e/protractor.excludes.json'))
},
plugins: [{
package: 'protractor-screenshoter-plugin',
screenshotPath: path.resolve(__dirname, '../e2e-output/'),
screenshotOnExpect: 'failure',
withLogs: true,
writeReportFreq: 'end',
imageToAscii: 'none',
htmlOnExpect: 'none',
htmlOnSpec: 'none'
}],
plugins: [
{
package: 'protractor-screenshoter-plugin',
screenshotPath: screenshotsFolder,
screenshotOnExpect: 'failure',
screenshotOnSpec: 'none',
withLogs: true,
writeReportFreq: 'end',
imageToAscii: 'none',
htmlOnExpect: 'none',
htmlOnSpec: 'none',
clearFoldersBeforeTest: true
}
],
onCleanUp(results) {
if (process.env.CI) {
@@ -182,12 +188,12 @@ exports.config = {
onPrepare() {
if (process.env.CI) {
retry.onPrepare();
const repoHash = process.env.GIT_HASH || '';
const outputDirectory = process.env.SMART_RUNNER_DIRECTORY;
logger.info(`SmartRunner's repoHash: "${repoHash}"`);
logger.info(`SmartRunner's repoHash : "${repoHash}"`);
logger.info(`SmartRunner's outputDirectory: "${outputDirectory}"`);
SmartRunner.apply({outputDirectory, repoHash});
retry.onPrepare();
SmartRunner.apply({ outputDirectory, repoHash });
}
const tsConfigPath = path.resolve(e2eFolder, 'tsconfig.e2e.json');
@@ -230,7 +236,7 @@ exports.config = {
console.log(`Save screenshot is ${SAVE_SCREENSHOT}, trying to save screenshots.`);
try {
await uploadScreenshot(1, 'ACA');
await uploadScreenshot(1);
console.log('Screenshots saved successfully.');
} catch (e) {
console.log('Error happened while trying to upload screenshots and test reports: ', e);