A brand new jasmine2 protractor plugin that captures for each browser instance a screenshot, console logs, raw HTML and DB dumps. The snapshot is made optionally for each expect or spec. Plugins comes with a beautiful angular based analytics tool to visually check and fix tests results.
I have a problem while running my e2e tests with this plugin. About half of the times my build will fail because of an error in this plugin. The plugin works fine (nice work!), but this bug causes a lot of false failures in my e2e tests. My tests are sharded with a maximum of 8 instance. 50% of the times the error doesn't show up.
Build logs:
2019-04-04T12:07:00.0544184Z [chrome #01-1] [14:07:00] I/plugins - [31m Fail: protractor-screenshoter-plugin Plugin Tests [39m 2019-04-04T12:07:00.0544184Z [chrome #01-1] [14:07:00] E/plugins - Failure during setup: EPERM: operation not permitted, mkdir 'D:\Agent17-Two\_work\1378\s\e2e\test-results\screenshots' 2019-04-04T12:07:00.0544184Z [chrome #01-1] [14:07:00] E/plugins - Error: EPERM: operation not permitted, mkdir 'D:\Agent17-Two\_work\1378\s\e2e\test-results\screenshots' 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Object.fs.mkdirSync (fs.js:885:18) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at sync (D:\Agent17-Two\_work\1378\s\node_modules\mkdirp\index.js:71:13) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at sync (D:\Agent17-Two\_work\1378\s\node_modules\mkdirp\index.js:78:17) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Function.sync (D:\Agent17-Two\_work\1378\s\node_modules\mkdirp\index.js:78:17) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at protractorUtil.setup (D:\Agent17-Two\_work\1378\s\node_modules\protractor-screenshoter-plugin\index.js:630:10) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at resolver (D:\Agent17-Two\_work\1378\s\node_modules\protractor\built\plugins.js:194:51) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Function.promise (D:\Agent17-Two\_work\1378\s\node_modules\q\q.js:682:9) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Plugins.safeCallPluginFun (D:\Agent17-Two\_work\1378\s\node_modules\protractor\built\plugins.js:207:22) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at promises.pluginObjs.filter.map.pluginObj (D:\Agent17-Two\_work\1378\s\node_modules\protractor\built\plugins.js:219:40) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Array.map (<anonymous>)
Hi there!
I have a problem while running my e2e tests with this plugin. About half of the times my build will fail because of an error in this plugin. The plugin works fine (nice work!), but this bug causes a lot of false failures in my e2e tests. My tests are sharded with a maximum of 8 instance. 50% of the times the error doesn't show up.
Build logs:
2019-04-04T12:07:00.0544184Z [chrome #01-1] [14:07:00] I/plugins - [31m Fail: protractor-screenshoter-plugin Plugin Tests [39m 2019-04-04T12:07:00.0544184Z [chrome #01-1] [14:07:00] E/plugins - Failure during setup: EPERM: operation not permitted, mkdir 'D:\Agent17-Two\_work\1378\s\e2e\test-results\screenshots' 2019-04-04T12:07:00.0544184Z [chrome #01-1] [14:07:00] E/plugins - Error: EPERM: operation not permitted, mkdir 'D:\Agent17-Two\_work\1378\s\e2e\test-results\screenshots' 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Object.fs.mkdirSync (fs.js:885:18) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at sync (D:\Agent17-Two\_work\1378\s\node_modules\mkdirp\index.js:71:13) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at sync (D:\Agent17-Two\_work\1378\s\node_modules\mkdirp\index.js:78:17) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Function.sync (D:\Agent17-Two\_work\1378\s\node_modules\mkdirp\index.js:78:17) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at protractorUtil.setup (D:\Agent17-Two\_work\1378\s\node_modules\protractor-screenshoter-plugin\index.js:630:10) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at resolver (D:\Agent17-Two\_work\1378\s\node_modules\protractor\built\plugins.js:194:51) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Function.promise (D:\Agent17-Two\_work\1378\s\node_modules\q\q.js:682:9) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Plugins.safeCallPluginFun (D:\Agent17-Two\_work\1378\s\node_modules\protractor\built\plugins.js:207:22) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at promises.pluginObjs.filter.map.pluginObj (D:\Agent17-Two\_work\1378\s\node_modules\protractor\built\plugins.js:219:40) 2019-04-04T12:07:00.0544184Z [chrome #01-1] at Array.map (<anonymous>)
Settings
package: 'protractor-screenshoter-plugin', screenshotPath: './e2e/test-results', screenshotOnExpect: 'failure', screenshotOnSpec: 'failure', withLogs: true, writeReportFreq: 'asap', imageToAscii: 'none', clearFoldersBeforeTest: true
Packages
"dependencies": { "@angular/animations": "^7.0.4", "@angular/common": "~7.0.0", "@angular/compiler": "~7.0.0", "@angular/core": "~7.0.0", "@angular/forms": "~7.0.0", "@angular/http": "~7.0.0", "@angular/platform-browser": "~7.0.0", "@angular/platform-browser-dynamic": "~7.0.0", "@angular/pwa": "^0.13.6", "@angular/router": "~7.0.0", "@angular/service-worker": "~7.0.0", "@ng-select/ng-select": "^2.15.1", "@ngx-translate/core": "^11.0.1", "@ngx-translate/http-loader": "^4.0.0", "@toverux/ngx-sweetalert2": "^4.0.0", "angular-odata-es5": "^0.8.0", "core-js": "^2.5.4", "jasmine": "^3.3.1", "moment": "^2.23.0", "moment-interval": "^0.2.1", "moment-range": "^4.0.1", "mydaterangepicker": "^4.2.1", "ng5-slider": "^1.1.13", "ngx-toastr": "^9.1.1", "ngx-webstorage-service": "^4.0.1", "protractor-screenshoter-plugin": "^0.10.3", "rxjs": "^6.3.3", "stacktrace-js": "^2.0.0", "sweetalert2": "^7.15.1", "ts-md5": "^1.2.4", "zone.js": "~0.8.26" }, "devDependencies": { "@angular-devkit/build-angular": "^0.13.1", "@angular/cli": "~7.0.6", "@angular/compiler-cli": "^7.2.9", "@angular/language-service": "~7.0.0", "@types/jasmine": "~2.8.8", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "~4.5.0", "forever": "^0.15.3", "jasmine-core": "~2.99.1", "jasmine-reporters": "^2.3.2", "jasmine-spec-reporter": "~4.2.1", "jasmine-trx-reporter": "^2.2.2", "karma": "^4.0.1", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.0", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", "karma-junit-reporter": "^1.2.0", "ng-apimock": "^1.4.8", "protractor": "^5.4.2", "ngx-webstorage-service": "^4.0.1", "protractor-screenshoter-plugin": "^0.10.3", "ts-node": "~5.0.1", "tslint": "~5.9.1", "typescript": "~3.1.6" } }
Protractor config file Attached. protractor-config.txt