Giter Site home page Giter Site logo

azachar / protractor-screenshoter-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from abhishekswain/jasmine2-protractor-utils

89.0 9.0 24.0 2.4 MB

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.

License: Other

JavaScript 100.00%
protractor-e2e-test report screenshots screenshot-utility screenshot-testing console-visualization html logs dump

protractor-screenshoter-plugin's Introduction

Gitter Open Source Helpers

npm npm

npm npm Semver Commitizen friendly

Dependency Status devDependency Status Known Vulnerabilities

Build Status Coverage Status Greenkeeper badge

protractor-screenshoter-plugin

It captures screenshots, console logs, raw HTMLs and DB dumps in your e2e protractor tests out-of-box.

All is then visualized in a beautiful HTML5 report analyzer.

We support multi capabilities and multi browsers instances, too.

Features

  1. This plugin can take screenshots of each Jasmine2 expect success/failure on multiple-browsers instances at once.
  2. It can take screenshots of each spec failure/success as well
  3. For each expectation or spec can capture console logs for each browser instance
  4. It can generate a report analyzer - angular+bootstrap HTML reports with active filtering to easily find out why your tests are failing
  5. HTML reports allow you to analyze your browser's console logs as well.
  6. Supports extracting build information (the report displays a build number, a branch, etc. ) for GitLab CI/CD, CircleCI and Travis.
  7. Supports parallel tests execution
  8. Makes optional Ascii screenshots
  9. Multi capabilities are supported
  10. For each expectation or spec can capture raw HTML for each browser instance
  11. For each expectation or spec can obtain a DB dump via a function returning callback(err, dumpAsString)

Additional HTML reporter features:

  1. domain log filter (to narrow down your test classes faster)
  2. excludes certain repetitive logs
  3. opens for each screenshot its rendered HTML code

Screenshots

Reporter Controls

Screenshoter reporter controlls

Expanded Spec

Screenshoter reporter spec

Forked Browser Support

Screenshoter multi browsers

Console log management

Screenshoter reporter console

Stacktrace filtering

Screenshoter reporter stacktrace filtering

Motivation

The main motivation to make this fork from https://github.com/abhishekswain/jasmine2-protractor-utils was taking screenshots from multiple browsers at once. So it would allow me to test a chat alike apps where 2+ browsers instances are required to be run from one single test.

Later on, I realized that I want to have a quick overview what is happening with my tests on the CI server. Without even re-running them locally. When something goes wrong you are basically unable to discover it. This plugin allows you to do so.

The included HTML reporter is Angular based standalone app with a beautiful Bootstrap theme. It allows filtering and narrows down to the root cause. Each screenshot has attached console logs. And we are making screenshots by every expectation not just when the spec is done (this is usually too late to find out, why your test is failing).

Using this plugin without the HTML report doesn't make sense. The main added value is to have a great analytics tool for your reports that visualize all possible available data to provide a holistic approach.

From the code perspective, I split up the report code from the protractor plugin. Perhaps you can plugin in your reporter instead. Also, I think that any open source project must have good test coverage. So I provided the initial set of unit and integrational tests. 🍺

Also, I created a list of alternatives to this plugin and why I think they are just not good enough.

How to install

If your protractor is installed locally, then

npm install protractor-screenshoter-plugin

If your protractor is installed globally, then

npm install --global protractor-screenshoter-plugin

or install this plugin locally, but then you must specify the plugin's path like this:

    plugins: [{
        package: 'node_modules/protractor-screenshoter-plugin/index.js',
        ...
    }],

as mentioned in #37.

NOTE:

  1. This plugin depends on screenshoter-report-analyzer. So sometimes even if this plugin version is not updated, the reporter might be.

  2. If you want to use the option imageToAscii, then you need to install additional dependencies depending on your OS. By default is this option turned off.

  # Ubuntu
  sudo apt-get install graphicsmagick

  # Fedora
  sudo dnf install GraphicsMagick

  # CentOS / RHEL
  sudo yum install --enablerepo epel GraphicsMagick

  # OS X
  brew install graphicsmagick

  # Windows users can install the binaries from http://www.graphicsmagick.org/
  # ...or using the command line:
  # Chocolatey (package manager for Windows)
  # (Restart of cmd/PowerShell is required)
  choco install graphicsmagick

Then, install this optional package

  npm install [email protected]

Experimental features

Please always check our branches started with feat-. There are some new and shiny features that are working but aren't yet published. Each branch has information how to use it and install it. Once it is stable enough, it will be merged into the master branch. Feel free to provide feedback to them.

Usage

Add this plugin to the protractor config file:

Example:

exports.config = {
    framework: 'jasmine2',

    plugins: [{
        package: 'protractor-screenshoter-plugin',
        screenshotPath: './REPORTS/e2e',
        screenshotOnExpect: 'failure+success',
        screenshotOnSpec: 'none',
        withLogs: true,
        writeReportFreq: 'asap',
        imageToAscii: 'none',
        clearFoldersBeforeTest: true
      }],

      onPrepare: function() {
          // returning the promise makes protractor wait for the reporter config before executing tests
          return global.browser.getProcessedConfig().then(function(config) {
              //it is ok to be empty
          });
      }
};

Here is the full list of possible options, more details see below in the config reference section.

exports.config = {
       plugins: [{
       package: 'protractor-screenshoter-plugin',
       screenshotOnExpect: {String}    (Default - 'failure+success', 'failure', 'none'),
       screenshotOnSpec: {String}    (Default - 'failure+success', 'failure', 'none'),
       htmlOnExpect: {String}    (Default - 'failure', 'failure+success', 'none'),
       htmlOnSpec: {String}    (Default - 'failure', 'failure+success', 'none'),
       withLogs: {Boolean}      (Default - true),
       htmlReport: {Boolean}      (Default - true),
       screenshotPath: {String}                (Default - '<reports/e2e>/screenshots')
       writeReportFreq: {String}      (Default - 'end', 'spec', 'asap'),
       verbose: {String} (Default - 'info', 'debug'),
       pauseOn: {String}    (Default - 'never', 'failure', 'spec'),
       imageToAscii: {String}    (Default - 'none', 'failure+success', 'failure'),
       imageToAsciiOpts:{Obbject} (Default - {bg:true})
       clearFoldersBeforeTest: {Boolean}       (Default - false),
       failTestOnErrorLog: {
                failTestOnErrorLogLevel: {Number},  (Default - 900)
                excludeKeywords: {A JSON Array}
                suites: {A JSON Array}
           }
       }],
       dumpOnExpect: {String}    (Default - 'failure', 'failure+success', 'none'),
       dumpOnSpec: {String}    (Default - 'none', 'failure+success', 'failure'),
       dump: {Function} (Default - null),
       onPrepare: function () {
        // returning the promise makes protractor wait for the reporter config before executing tests
        return global.browser.getProcessedConfig().then(function (config) {
          //it is ok to be empty
        });
       }
     };

Single browser app

No need to setup anything special to make screenshots or capture console logs.

Multi-browser chat alike app

In order to use multi-browser chat alike testing, you need to keep a track of all browser instances by yourself:

You can do it like this

var a  = browser.forkNewDriverInstance();
var b  = browser.forkNewDriverInstance();

global.screenshotBrowsers['anyCustomNameOfBrowserDisplayedInReports'] = a;
global.screenshotBrowsers.userB = b;

if you close the browser, remove it also from global.screenshotBrowsers After closing browser making screenshots won't work. Make sense, right no browser no screenshot.

delete global.screenshotBrowsers.userB;

to reset screenshotBrowsers from your previous spec use this code

beforeAll(function() {
    global.screenshotBrowsers = {};
  });

Running tests in parallel

For each run of Protractor, it creates separate tests results that are in the end merged into one report.

The configuration such as this one are supported as of version 0.3.x:

exports.config = {
    framework: 'jasmine2',
    //like usual (no change in config api)
    plugins: [{
        package: 'protractor-screenshoter-plugin',
        screenshotPath: './REPORTS/e2e',
        screenshotOnExpect: 'failure+success',
        screenshotOnSpec: 'none',
        withLogs: true,
        writeReportFreq: 'asap',
        clearFoldersBeforeTest: true
    }],
    //this is new and supported
    capabilities: {
        'browserName':'chrome',
        'shardTestFiles': true,
        'maxInstances': 5
    }
};

Ascii screenshots

If there is a failure (based on the config) it creates also an ASCII image into a log file. For this feature, you need to install additional OS dependent libraries. For more information read the doc imageToAscii bellow.

Config reference

Environmental variables

Screenshoter out-of-box obtains build information. However, some CI does not have an environmental variable for a commit message. Thus you need to obtain it manually:

GitLab

   export CI_COMMIT_MSG=$(git log -1 --pretty=%B)

CircleCI

   export CIRCLE_MSG=$(git log -1 --pretty=%B)

If CI will support one day these variables, you won't need to enter anything in your build process.

Do you want to see exactly what is extracted, consult the code directly obtainCIVariables

dump

If set a function, allows you to run extra command that produce a dump. The dump is taken depending on value in dumpOnSpec or dumpOnExpect.

This allows you to greater examine your failed expectation/spec from multiple perspectives,

one is a screenshot (unfortunately selenium cannot make a whole page screenshot, only what is in the visible browser's window),

the second is a whole page raw HTML ( this helps to overcome limitations in seeing only screenshots)

and the third could be for example a DB dump that is all nicely linked to expectations.

Note: Implementation of the dump function is up to you, you provide any function that must return a string directly or in a callback(err, dumpString).

Default: null

Valid Options: null / Function

dumpOnExpect

Calls the dump function for each Jasmine2 expect failure or success, depending on value.

Default: 'failure'

Valid Options: 'failure+success'/'failure'/'none'

dumpOnSpec

Calls the dump function for each Jasmine2 spec failure or success, depending on value.

Default: none

Valid Options: 'failure+success'/'failure'/'none'

htmlReport

If set to false, disables HTML report generation.

NOTE: This tool doesn't really make sense to use without the reports.

Default: true

Valid Options: true/false

screenshotOnExpect

Takes from each browser instance stored in global.screenshotBrowsers screenshots for each Jasmine2 expect failure or success, depending on value.

Default: 'failure+success'

Valid Options: 'failure+success'/'failure'/'none'

screenshotOnSpec

Takes from each browser instance stored in global.screenshotBrowsers screenshots for each Jasmine2 spec failure or success, depending on value.

Default: failure+success

Valid Options: 'failure+success'/'failure'/'none'

htmlOnExpect

Takes from each browser instance stored in global.screenshotBrowsers raw html for each Jasmine2 expect failure or success, depending on value.

Default: 'failure'

Valid Options: 'failure+success'/'failure'/'none'

htmlOnSpec

Takes from each browser instance stored in global.screenshotBrowsers raw html for each Jasmine2 spec failure or success, depending on value.

Default: 'failure'

Valid Options: 'failure+success'/'failure'/'none'

pauseOn

If fails, pause browser on expectation failure or spec failure or never.

Default: 'never'

Valid Options: 'failure'/'spec'

verbose

If set to debug display internal logging.

Default: 'info'

Valid Options: 'debug'/'info'

imageToAscii

Additionally, make an ASCII image into the console so you can find the issue of you test in your build easier.

Please note that one of the options of screenshotOnExpect or screenshotOnSpec must be used to generate the initial screenshot that as additionally transformed into an ASCII image.

If you are using multiple browsers instances you can disable generating ASCII images individually by setting

browser.skipImageToAscii = true;

Then this browser instance will be not generated in the log file.

Default: 'failure'

Valid Options: 'failure+success'/'failure'/'none'

To use this feature please follow instructions on https://github.com/IonicaBizau/image-to-ascii/blob/master/INSTALLATION.md

and also please install the optional dependency

npm install image-to-ascii

imageToAsciiOpts

Options for imageToAscii conversion, more info can be found at https://github.com/IonicaBizau/image-to-ascii

Default: {bg:true}

withLogs (Chrome only)

If set to true, capture from chrome all logs after each expect or spec

NOTE: This works only on chrome!

Default: true

Valid Options: true/false

In order to make chrome' console works properly, you need to modify your protractor.conf as follows webdriverio/webdriverio#491 (comment)

writeReportFreq

By default, the output JSON file with tests results is written at the end of the execution of jasmine tests. However, for debugging, is better to get it written immediately after each expectation - specify the option 'asap'. Also, there is a less usual option to write it after each test - use the option 'spec'. The recommended is to left it out for a CI server and for a local debugging use the option 'asap'.

Default: 'end'

Valid Options: 'asap', 'spec', 'end'

_NOTE: Using option ASAP might introduce unpredictable race conditions if multiple browsers are tested at once. It happens when we automatically collect results of all particulars JSON report files into one final.

screenshotPath

The path where the final report including screenshots will be saved. If the path does not exist, will be created. e.g ./reports/something/samewhere/, please take care of ./ and / at the beginning and end.

Please note that due to an HTML reporter sugar, the final screenshots are stored in the subfolder relative to this $screenshotPath parameter, e.g. in the folder $screenshotPath/screenshots'

Default: 'reports/e2e'

clearFoldersBeforeTest

If this flag set to true, screenshot and HTML report directories will be emptied before generating new reports and screenshots

Default: false

addPrefixToTests

If this flag is set to true, a prefix will be added to every test description with the name value presented on the capabilities object defined on the protractor configs.

Default: false

failTestOnErrorLog (Chrome only)

Contains a set of configuration for console log. When browser console has errors of a certain log level (default:>900), the spec/test is marked failed along with log in the error report/stacktrace.

NOTE: This works only on chrome!

failTestOnErrorLogLevel

Log level, the test fails of the browser console log has logs more than this specified level.

Default: 900

excludeKeywords

An array of keywords to be excluded while searching for error logs. i.e If a log contains any of these keywords, spec/test will not be marked failed.

Please do not specify this flag, if you don't supply any such keywords.

suites

An array of suites (protractor.config.suites) where the failTestOnErrorLog will run.

Please do not specify this flag, if you want all your tests to run through this failTestOnErrorLog validation.

Development

Please follow CONTRIBUTING.md.

protractor-screenshoter-plugin's People

Contributors

abhishekswain avatar azachar avatar greenkeeper[bot] avatar joaomqcunha avatar wncm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

protractor-screenshoter-plugin's Issues

HTML report doesn't include all the specs it ran

screen shot 2017-04-01 at 01 00 00

I had above configuration. ie., Total number of specs - 7 and 'maxInstances' is 2. Once all the test is ran, only last 2 specs are present in the html report file.
I tried increasing the 'maxInstances': 3 and this time i see 3 specs in the html report file.

Is it expected Or am i doing some thing wrong ?

Thanks in Advance,
Shan

Question- Error installing protractor-screenshoter-plugin in RHEL 7.3 box

While I am installing the plugin on RHEL 7.3 box, I am getting below error.
Do you have any idea about it.

[root@mo-92cd10a6e tests]# npm install protractor-screenshoter-plugin

[email protected] install /home/jenkins/workspace/Dummy_tests/tests/node_modules/lwip2
node lib/install.js

module.js:472
throw err;
^

Error: Cannot find module '/home/jenkins/workspace/Dummy_tests/tests/node_modules/lwip2/lib/install.js'
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:427:7)
at startup (bootstrap_node.js:148:9)
at bootstrap_node.js:542:3
[email protected] /home/jenkins/workspace/Dummy_tests/tests
└── (empty)

npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm WARN [email protected] No license field.
npm ERR! Linux 3.10.0-327.10.1.el7.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "protractor-screenshoter-plugin"
npm ERR! node v7.7.4
npm ERR! npm v4.1.2
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: node lib/install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node lib/install.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the lwip2 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node lib/install.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs lwip2
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls lwip2
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! /home/jenkins/workspace/Dummy_tests/tests/npm-debug.log

Getting 'Error in browser instance X while taking the logs' for each test in Firefox and Safari

Bug report

  • Your protractor configuration file (attached in next comment)
  • Protractor Version: 5.3.0
  • Browser(s): Safari and Firefox
  • Node Version: 8.9.4
  • Angular Version: NA
  • Operating System and Version OSX 10.11.6
  • Output from running the test
[$] protractor ./bug66.conf.js --browser=safari
(node:77133) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[09:00:05] I/launcher - Running 1 instances of WebDriver
[09:00:05] I/local - Starting selenium standalone server...
[09:00:06] I/local - Selenium standalone server started at http://192.168.1.92:53762/wd/hub
Activated Protractor Screenshoter Plugin, ver. 0.10.1 (c) 2016 - 2018 Andrej Zachar and contributors
Started
Creating reporter at .tmp/bug66/
Error in browser instance safari while taking the logs:The command 'POST /session/D11C1BD4-41CD-48D2-BB9F-CE956C6951CF/log' is not implemented.
.

1 spec, 0 failures
Finished in 2.227 seconds

When running my tests in Chrome I don't ever receive the 'Error in browser instance X while taking the logs' in my console output. But I'm getting the error for every single test I run in Firefox and Safari:

image

Steps to reproduce:

  • Run the spec, Chrome will be used in directConnect mode. Observe that the error in question does not display.
  • Run the spec again but specify --browser=firefox/safari. Observe error in question. (note if you specify safari just comment out the directConnect: true line in the config.

I'm not sure this is causing an actual problem - my console output just gets really messy:

image

I'll attach the spec and config file after I get the issue #.

Include console output

Hi,

Is there a way to include the console output from the protractor tests in the report?

For example, if my tests are logging the time taken by certain events to complete, I would love to have them show in the report.

BTW, great plugin! Thank you for your work!

Ankit

An in-range update of moment is breaking the build 🚨

Version 2.18.0 of moment just got published.

Branch Build failing 🚨
Dependency moment
Current Version 2.17.1
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

As moment is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this πŸ’ͺ


Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build failed Details
Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Configurable permissions for files and folders created for report

Hi,

I'm having an issue with your plugin but not in its main functionality that works as expected (nice work).

I launch a protractor test battery that uses your plugin to generate a wonderfull html report, and when i launch it as myself from Webstorm(IDE), it creates the folders, modifies the files and all goes well.
When i launch it as a job from Jenkins, it complains about some permissions issues with some files:

[16:25:31] I/plugins - οΏ½[31m Fail: jasmine2-protractor-utils Plugin Tests οΏ½[39m
[16:25:31] E/plugins - Failure during setup: EACCES: permission denied, mkdir '/home/barrerah/WebstormProjects/protractorTests/reports/dev/htmlReports'
[16:25:31] E/plugins - Error: EACCES: permission denied, mkdir '/home/barrerah/WebstormProjects/protractorTests/reports/dev/htmlReports'
at Object.fs.mkdirSync (fs.js:893:18)
at Function.sync (/usr/lib/node_modules/jasmine2-protractor-utils/node_modules/mkdirp/index.js:71:13)
at protractorUtil.setup (/usr/lib/node_modules/jasmine2-protractor-utils/index.js:314:16)
at resolver (/usr/lib/node_modules/protractor/lib/plugins.ts:460:52)
at Function.promise (/usr/lib/node_modules/protractor/node_modules/q/q.js:682:9)
at Plugins.safeCallPluginFun (/usr/lib/node_modules/protractor/lib/plugins.ts:471:16)
at promises.pluginObjs.filter.map.pluginObj (/usr/lib/node_modules/protractor/lib/plugins.ts:499:28)
at Array.map (native)
at Plugins.args [as setup] (/usr/lib/node_modules/protractor/lib/plugins.ts:497:16)
at q.then.then.then (/usr/lib/node_modules/protractor/lib/runner.ts:407:26)
[16:25:31] I/plugins - οΏ½[31m Fail: jasmine2-protractor-utils Runtime οΏ½[39m
[16:25:31] E/plugins - Failure during postResults: ENOENT: no such file or directory, scandir './reports/dev/htmlReports'
[16:25:31] E/plugins - Error: ENOENT: no such file or directory, scandir './reports/dev/htmlReports'
at Object.fs.readdirSync (fs.js:912:18)
at /usr/lib/node_modules/jasmine2-protractor-utils/index.js:344:24
at ManagedPromise.invokeCallback_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1366:14)
at TaskQueue.execute_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2970:14)
at TaskQueue.executeNext_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2953:27)
at asyncRun (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2860:25)
at /usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:676:7
at process._tickCallback (internal/process/next_tick.js:103:7)
[16:25:31] I/launcher - 0 instance(s) of WebDriver still running
[16:25:31] I/launcher - chrome #1 failed 1 test(s)
[16:25:31] I/launcher - overall: 1 failed spec(s)
[16:25:31] E/launcher - Process exited with error code 1

Any option to make tha folder +777 by default or configure specific permissions?

Thanks in advance

Cannot read property 'failedExpectations' of undefined

Perhaps, you might have a similar problem as I do, here is the console log:

{ package: 'protractor-screenshoter-plugin',
screenshotPath: './REPORTS/artifacts/e2e',
screenshotOnExpect: 'failure+success',
screenshotOnSpec: 'failure',
writeReportFreq: 'spec',
clearFoldersBeforeTest: true,
withLogs: true }
Started
Spec started
Creating reporter at ./REPORTS/artifacts/e2e/
done
[18:47:41] E/launcher - Cannot read property 'failedExpectations' of undefined
[18:47:41] E/launcher - TypeError: Cannot read property 'failedExpectations' of undefined
at Spec.jasmine.Spec.addExpectationResult (/home/ubuntu/xxxx/node_modules/protractor-screenshoter-plugin/index.js:104:36)

It happens only sometimes. Kind of a race condition.

An in-range update of q is breaking the build 🚨

Version 1.5.1 of q was just published.

Branch Build failing 🚨
Dependency q
Current Version 1.5.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

q is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 9 commits.

  • c2f5a6f 1.5.1
  • 60cd322 Prepare 1.5.1 release notes
  • 1524e1a Merge pull request #823 from addaleax/no-dispose
  • b944fe0 spec: don't use domain.dispose()
  • 1f04d5d Merge pull request #813 from ivanetchart/change_any_behavior
  • 9175f60 Apply feedback
  • a78a46e Improve tests
  • 1bcb612 Improve any behavior
  • a964880 Avoid .any not rejecting when promises reject with no value

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of moment is breaking the build 🚨

Version 2.17.1 of moment just got published.

Branch Build failing 🚨
Dependency moment
Current Version 2.17.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

As moment is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this πŸ’ͺ


Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build failed Details
Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Screenshot not taken in time before next action

Bug report

  • Plugin Version: 0.10.1
  • Protractor Version: 5.3.2
  • Browser(s): Chrome 67
  • Node Version: 8.9.4
  • Angular Version: 5.2.0
  • Operating System and Version RHEL 7.4
 plugins: [{
    package: 'protractor-screenshoter-plugin',
    screenshotPath: './test-results/e2e/html-report',
    screenshotOnExpect: 'failure',
    screenshotOnSpec: 'none',
    htmlOnExpect: 'failure',
    htmlOnSpec: 'none',
    withLogs: false,
    writeReportFreq: 'asap',
    imageToAscii: 'none',
    clearFoldersBeforeTest: true
  }],

I've been using the protractor-screenshoter-plugin and its been great so far. 95% of the time it works fine. Every once and a while I get a scenario where the screenshot taken for a failed expect is not of the screen where the failure happened, but of the screen after the next action has already been done.

For example, this dummy scenario:

await browser.get('/page2');
expect(isPage1).toBe(true, 'Not page1');
await browser.get('/page3');
  1. The test goes to page2.
  2. Do an expect() to check if its page1. This obviously fails and should take a screen shot where it would show page2 in the image.
  3. What happens is the screenshot is taken after its gone to page3.

Now, I believe this may be an issue with await/async vs control flow. I don't recall seeing this when I was using control flow in the test. Now that I converted my test to use await/async its happened several times.

Perhaps since the reporter attaches to the expect() call, that the test doesn't wait on the reporter to finish before moving on to the next line.

An in-range update of jasmine is breaking the build 🚨

Version 2.6.0 of jasmine just got published.

Branch Build failing 🚨
Dependency jasmine
Current Version 2.5.3
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As jasmine is β€œonly” a devDependency of this project it might not break production or downstream projects, but β€œonly” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this πŸ’ͺ

Status Details - ❌ **continuous-integration/travis-ci/push** The Travis CI build could not complete due to an error [Details](https://travis-ci.org/azachar/protractor-screenshoter-plugin/builds/225375223)

Release Notes 2.6.0

Please see the release notes

Commits

The new version differs by 9 commits0.

  • 94de6d5 Bump version to 2.6.0
  • 6c3656f Merge branch 'lonelyelk-expose-reporters-management-api'
  • 6cb6d27 Making jshint pass.
  • 6f44d31 Expose closeReporters methos in the wrapper
  • 023455c Try to detect a exit being called inside the suite
  • 80e6b33 Merge branch 'add-config-option' of https://github.com/bcaudan/jasmine-npm into bcaudan-add-config-option
  • 77acbb1 Merge branch 'bcaudan-reject-unknown-options'
  • 88b838b Fix #53 - Reject unknown options
  • f527ab8 Fix #85 - Option to specify path to your jasmine.json

false

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

lwip and specific node versions block install

Looks the version of lwip you are pointing at has a problem installing on certain versions of node due to zlib and libpng versions being incompatible. I am on 6.11.3 and for my project can't currently use nvm to switch to a different version and install it. (that would only fix my local issues) . The version is pointed to a dead github version of lwip. pakj/lwip seems to be more alive. Also might consider using jimp as then you wouldn't have node trying to make calls to not node things.

../src/lib/png/pngpriv.h:805:4: error: ZLIB_VERNUM != PNG_ZLIB_VERNUM       "-I (include path) error: see the notes in pngpriv.h"
#  error ZLIB_VERNUM != PNG_ZLIB_VERNUM \
   ^
1 error generated.
make: *** [Release/obj.target/lwip_decoder/src/lib/png/png.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/m54148/.nvm/versions/node/v6.11.3/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12)
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/Users/m54148/.nvm/versions/node/v6.11.3/bin/node" "/Users/m54148/.nvm/versions/node/v6.11.3/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/m54148/sites/aa/packages/aa-client/node_modules/lwip2/node_modules/lwip
gyp ERR! node -v v6.11.3
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm ERR! Darwin 16.7.0
npm ERR! argv "/Users/m54148/.nvm/versions/node/v6.11.3/bin/node" "/Users/m54148/.nvm/versions/node/v6.11.3/bin/npm" "i" "[email protected]"
npm ERR! node v6.11.3
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the lwip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs lwip
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls lwip
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/m54148/sites/aa/packages/aa-client/node_modules/lwip2/npm-debug.log
It seems like lwip failed to be intalled. Please check the errors.
@cigna/[email protected] /Users/m54148/sites/aa/packages/aa-client
β”œβ”€β”€ UNMET PEER DEPENDENCY @angular/[email protected]
β”œβ”€β”€ UNMET PEER DEPENDENCY @angular/[email protected]
β”œβ”€β”€ UNMET PEER DEPENDENCY @ngrx/[email protected]
└── [email protected]

npm WARN @angular/[email protected] requires a peer of @angular/core@~4.4.4 but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/common@~4.4.4 but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/core@~4.4.4 but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/common@~4.4.4 but none was installed.
npm WARN [email protected] requires a peer of @ngrx/store@^2.2.1 but none was installed.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/lwip2):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node lib/install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1```
  

npm release of 0.3.1

Hello,

This is a great tool. I could make use of version 0.3.1 but it hasn't made it to npm yet, apparently from a spec making the npm test step fail. Any idea on when this will be resolved?

Ignored tests result in error being logged due to screenshoter

Error in browser instance default while taking the screenshot: logs/reports/screenshots/dd07c0e0-c165-11e7-b4af-bde58b959435.png - Error: Error from waitForAngular: both angularJS testability and angular testability are undefined. This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping. See http://git.io/v4gXM for details

Configuration

"protractor-screenshoter-plugin": "0.3.2",

		{
			package: 'protractor-screenshoter-plugin',
			screenshotPath: 'logs/reports',
			screenshotOnExpect: 'failure',
			screenshotOnSpec: 'failure+success',
			withLogs: 'true',
			writeReportFreq: 'asap',
			clearFoldersBeforeTest: true,
		},

Here's two debug sessions to see what state the plugin is in.

it specs disabled with xdescribe around them

describe('Performances display', function () {
	xdescribe('performances table by film', function () {
		it('shows film headers', function () { ... });
		it('shows cinema headers', function () { ... });
	});
...

image

specific it spec disabled with xit

describe('Performances display', function () {
	describe('performances table by film', function () {
		xit('shows film headers', function () { ... });
		it('shows cinema headers', function () { ... });
	});
...

image

in protractorUtil.takeScreenshotOnSpecDone:

+    if (result.status === 'disabled' || result.status === 'pending') {
+        makeScreenshotsFromEachBrowsers = false;
+    }
    if (makeScreenshotsFromEachBrowsers) {

hack confirmed to solve the problem.

Also note there's an API to skip tests: pending("my reason"), but in that case the test may have actually started and ready to be screenshot (it could be in the middle of the it spec after many expects have passed).

Browser name

How can I see what browser was used per screenshot?

We have a bunch of different browsers and it always prints "default" above screenshot. Like it is in your screenshot examples. Is there a way to put browser info there? Like "Chrome - Linux" like it is specified in protractor's capabilities.

An in-range update of circular-json is breaking the build 🚨

Version 0.3.2 of circular-json just got published.

Branch Build failing 🚨
Dependency circular-json
Current Version 0.3.1
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

circular-json is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this πŸ’ͺ

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 9 commits.

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

HTML report is broken

When I try to load the html report, I get the following error:

vendor-afff2f87a4.js:7 TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined
    at n.value (http://localhost/reports/scripts/app-06a58296b4.js:3:3778)
    at new n (http://localhost/reports/scripts/app-06a58296b4.js:3:3266)
    at Object.s [as instantiate] (http://localhost/reports/scripts/vendor-afff2f87a4.js:6:20907)
    at http://localhost/reports/scripts/vendor-afff2f87a4.js:7:14932
    at Object.<anonymous> (http://localhost/reports/scripts/vendor-afff2f87a4.js:27:23873)
    at http://localhost/reports/scripts/vendor-afff2f87a4.js:6:5658
    at ve (http://localhost/reports/scripts/vendor-afff2f87a4.js:7:10073)
    at d (http://localhost/reports/scripts/vendor-afff2f87a4.js:7:2522)
    at o (http://localhost/reports/scripts/vendor-afff2f87a4.js:6:30380)
    at http://localhost/reports/scripts/vendor-afff2f87a4.js:6:29911 <div ui-view="" class="ng-scope">

An in-range update of q is breaking the build 🚨

Version 1.5.0 of q just got published.

Branch Build failing 🚨
Dependency q
Current Version 1.4.1
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

As q is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this πŸ’ͺ


Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build failed Details
Commits

The new version differs by 46 commits .

  • 4fecabe Update change log with version
  • 0ba2b1b 1.5.0
  • 9ede4c5 Merge pull request #803 from mariotsi/patch-1
  • db76578 Updating comment with correct method name.
  • 3d648e4 More dashes for horizontal rule in design document
  • d8fd789 Merge pull request #791 from kriskowal/meh
  • 14cd347 Merge pull request #799 from amZotti/v1
  • 8b71d62 Merge pull request #792 from artemv/v1
  • c1f648e Docs: Update year in README and LICENSE
  • c0fdb66 Merge pull request #798 from kennynaoh/cdnjs-badge
  • c080f7f Add CDNJS badge in readme
  • 7e4c79a Merge pull request #789 from jbunton-atlassian/long-stack-improvements
  • 0cb4757 Added comment describing the long stack counter
  • d9652d7 docs: correct bower package version in README
  • 5a5e64d Redact message about experimental branch

There are 46 commits in total. See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of moment is breaking the build 🚨

Version 2.19.0 of moment was just published.

Branch Build failing 🚨
Dependency moment
Current Version 2.18.1
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

moment is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

One spec file per page

Hello,
I was wondering if it is possible to have each spec file on a separate page in the report?
Currently, pagination is such that the amount of content is even between the pages. But it would be useful to have spec files on separate pages, maybe even links to navigate between them.

Unable to install plugin on node v6.9.5

I am new to protractor and node.js. I received the below error while installing this plugin. Could you please help me with steps to resolve it.

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "protractor-screenshoter-plugin"
npm ERR! node v6.9.5
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node lib/install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node lib/install.js'.

After spec screenshots not showing on the report

When the configuration has enabled after spec screenshots, they are properly done and exist in the screenshots folder, but they are not shown on the html report. On expect failure screenshots work normally, just the after spec ones are not showing.

How to disable configuration and generating output in console log

Hello.
Please help me to disable console log output that generated by "protractor-screenshoter-plugin".
Output looks like this:

Activated Protractor Screenshoter Plugin, ver. 0.2.3 (c) 2016 [object Object] and contributors
The resolved configuration is:
{ screenshotPath: 'target/e2e',
clearFoldersBeforeTest: true,
withLogs: 'false',
screenshotOnExpect: 'failure',
screenshotOnSpec: 'failure',
htmlReport: 'true',
writeReportFreq: 'asap',
package: 'protractor-screenshoter-plugin' }
Creating reporter at target/e2e/
done
Generating target/e2e/report.js
Generating target/e2e/report.js
Generating target/e2e/report.js

I don't know how to disable this output.
Also I don't know why for one test case, generated 3 similar strings in console log:
Generating target/e2e/report.js
Generating target/e2e/report.js
Generating target/e2e/report.js

An in-range update of protractor is breaking the build 🚨

Version 5.2.0 of protractor was just published.

Branch Build failing 🚨
Dependency protractor
Current Version 5.1.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

protractor is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 20 commits.

  • c2cf0db chore(release): version changelog for 5.2.0
  • 0fbc2c0 chore(release): update selenium-webdriverjs and bump version number (#4538)
  • 862e8be fix(circleci): Disable testcases for "useBlockingProxy" (#4523)
  • f7e17f3 fix(clientSideScripts): change protractor to support waiting for hybrid app (#4512)
  • 15776b8 Export Locator (#4459)
  • 6be98ea docs(plugins): fix links and formatting (#4431)
  • 4b7cada fix(sauce): bring back sauceProxy as a configuration option (#4419)
  • b87159b fix(website): fix all locator examples to use element over browser.findElement (#4413)
  • 768fd39 fix(local): allow local driver provider to use gecko driver from config (#4412)
  • c0b8770 docs(website): fix issue 4246
  • f79938e docs(plugins): add ng-apimock plugin to plugins.md
  • ab1afb0 fix(blockingproxy): Start bpRunner strictly after setupDriverEnv
  • b85e7ee fix(npmignore): .map files in built directory cause stacktrace lines to nowhere
  • 299fc8d docs(browser-support): Fixed incorrect example
  • e5a5d59 docs(frameworks) align cucumberOpts comments

There are 20 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Ability to use an other html reporter that default one

Hi, first of all thanks a lot for this plugin !

A cool new feature could be to have ability to have a parameter to set our own html reporter.

I can help if you need to and if you can give some informations on how data is passed to this reporter.

ability to inject additional screens into the report

We have implemented the plugin but I am curious if there is a way to add addition screenshots to the report. For example if I want to capture a screenshot of a dialog or page so i can use it a reference in the report.

An in-range update of image-to-ascii is breaking the build 🚨

Version 3.0.6 of image-to-ascii just got published.

Branch Build failing 🚨
Dependency image-to-ascii
Current Version 3.0.5
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

As image-to-ascii is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this πŸ’ͺ


Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build failed Details
Release Notes 3.0.6

Updated the project badges. Added information about how you can support my projects (Bitcoin address, Amazon wishlist). πŸ“–

Commits

The new version differs by 6 commits .

  • 1df9639 Updated docs
  • 805583e :arrow_up: 3.0.6 :tada:
  • a56e3e5 Merge pull request #40 from Qix-/patch-1
  • 3798a51 INSTALLTION -> INSTALLATION in package.json
  • a21fa09 Merge pull request #39 from Qix-/master
  • 8616505 INSTALLTION -> INSTALLATION

See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of circular-json is breaking the build 🚨

The dependency circular-json was updated from 0.5.5 to 0.5.7.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

circular-json is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 3 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Running test from docker will fail to build docker images [package.json should have plugin]

Hi there!

Thanks for submitting an issue to Protractor Screenshoter Plugin.

To help us help you better, please do the following before submitting an issue:

  1. Make sure you are not asking a usage or debugging question. If you are, use StackOverflow, or Gitter to get help.
  2. Provide a minimally reduced test case. This makes it much more likely that your bug will be fixed.
    Please follow CONTRIBUTING.md.
  3. Fill in the information that corresponds to your type of issue below.
  4. Delete this intro and any unrelated text πŸ˜„ (if you do not we'll assume you haven't read these instructions and automatically close the issue.)

Bug report

  • Your protractor configuration file
  • Protractor Version: 5.3.0
  • Browser(s): Chrome
  • Node Version: 9
  • Angular Version: ``
  • Operating System and Version ``
  • A relevant example test
  • Output from running the test
  • Steps to reproduce the bug When we are running test from docker , and package.json have plugin will fail to build the image because of installation of plugin

[email protected] install /Users/trishachetani/Desktop/weardex-operation/viwatch/node_modules/lwip2/node_modules/lwip
node-gyp rebuild

CXX(target) Release/obj.target/lwip_decoder/src/decoder/init.o
CXX(target) Release/obj.target/lwip_decoder/src/decoder/util.o
CXX(target) Release/obj.target/lwip_decoder/src/decoder/buffer_worker.o
../src/decoder/buffer_worker.cpp:8:56: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
_height(0), _channels(0), _trans(false), _metadata("") {
^
1 warning generated.
CXX(target) Release/obj.target/lwip_decoder/src/decoder/jpeg_decoder.o
CXX(target) Release/obj.target/lwip_decoder/src/decoder/png_decoder.o
CXX(target) Release/obj.target/lwip_decoder/src/decoder/gif_decoder.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jmemnobs.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jcomapi.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdapimin.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdapistd.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdatadst.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdatasrc.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdcoefct.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdcolor.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jddctmgr.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdhuff.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdinput.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdmainct.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdmarker.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdmaster.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdpostct.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdsample.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jerror.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jfdctflt.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jfdctfst.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jfdctint.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jidctflt.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jidctfst.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jidctint.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jutils.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jmemmgr.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdarith.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jdmerge.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jaricom.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jquant1.o
CC(target) Release/obj.target/lwip_decoder/src/lib/jpeg/jquant2.o
CC(target) Release/obj.target/lwip_decoder/src/lib/png/png.o
In file included from ../src/lib/png/png.c:14:
../src/lib/png/pngpriv.h:805:4: error: ZLIB_VERNUM != PNG_ZLIB_VERNUM "-I (include path) error: see the notes in pngpriv.h"

error ZLIB_VERNUM != PNG_ZLIB_VERNUM \

^
1 error generated.
make: *** [Release/obj.target/lwip_decoder/src/lib/png/png.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack at ChildProcess.emit (events.js:160:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Darwin 17.3.0
gyp ERR! command "/usr/local/Cellar/node/9.4.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/trishachetani/Desktop/weardex-operation/viwatch/node_modules/lwip2/node_modules/lwip
gyp ERR! node -v v9.4.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/trishachetani/.npm/_logs/2018-02-09T09_49_10_715Z-debug.log
It seems like lwip failed to be intalled. Please check the errors.
npm WARN [email protected] No repository field.
npm WARN The package protractor-console is included as both a dev and production dependency.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/lwip2):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: node lib/install.js
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

Feature Request

  • Reasons for adopting new feature
  • Is this a breaking change? (How will this affect existing functionality)

An in-range update of protractor is breaking the build 🚨

Version 4.0.12 of protractor just got published.

Branch Build failing 🚨
Dependency protractor
Current Version 4.0.11
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As protractor is β€œonly” a devDependency of this project it might not break production or downstream projects, but β€œonly” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this πŸ’ͺ


Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build failed Details
Commits

The new version differs by 16 commits .

  • 81a6eaa docs(element): fix docs for element(locator).then
  • 7f443c7 chore(release): Version bump and changelog for 4.0.12
  • 50c29ac chore(scripts): clean up package scripts (#3794)
  • 4449112 chore(cleanup): jshint cleanup for spec (#3800)
  • 742f264 fix(driverProviders): quit forked instances w/ local driver provider (#3787)
  • 7d481d6 fix(ExpectedConditions): non-static ExpectedConditions for browser (#3766)
  • 12c5139 docs(website): improve docs for $ and $$ (#3773)
  • 6193728 chore(tests): Testapp with @angular/upgrade/static (ngUpgrade for AoT apps) (#3758)
  • 19f99d6 chore(browser): fix typings for getCapabilities (#3742)
  • 70bc6ea chore(refactor): prefer path.resolve (#3751)
  • 40eb493 chore(docs): update docs to use webdriver-manager for mobile setup (#3320)
  • f773f5f chore(testapp): upgrade angular 2 versions (#3746)
  • 9fdd3d3 chore(npm): add some artifacts to npmignore (#3747)
  • 10d84ff chore(types): make TS think that ElementArrayFinder and ElementFinder are compatible with WebElement (#3732)
  • f4843d1 cleanup(types): Fix webelement.then() return type. (#3739)

There are 16 commits in total. See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Error while using multiple capabilities in protractor - java.net.BindException: Address already in use: connect

Running protractor test with multiple capabilities - chrome & chrome(with mobileEmulation) gives following error

[chrome #11] Error in browser instance chrome while taking the raw html: ./REPORTS/e2e/htmls/46702ac0-0277-11e8-a8b6-8f9ba8490823.html - java.net.BindException: Address already in use: connect

Here's the config file -

export let config: Config = {
  allScriptsTimeout: 50000,
  getPageTimeout: 50000,
  baseUrl: 'https://someurl.com/',
  framework: 'jasmine2',
  plugins: [{
    package: 'protractor-screenshoter-plugin',
    screenshotPath: './REPORTS/e2e',
    screenshotOnExpect: 'failure+success',
    screenshotOnSpec: 'none',
    withLogs: true,
    writeReportFreq: 'asap',
    imageToAscii: 'none',
    clearFoldersBeforeTest: true
  }],
  multiCapabilities: [{
      browserName: 'chrome',     
      specs: [ '../specs/**/Login.spec.js'],
      chromeOptions : {
        args : ['--no-proxy-server']
      }
    }, {
      specs: [ '../specs/**/Login.spec.js'],
      browserName: 'chrome',
        'chromeOptions': {
            'mobileEmulation': {
                'deviceName': 'Nexus 6P'
        }
      }
  }],
    
  onPrepare: () => {
    browser.manage().window().maximize();
    browser.manage().timeouts().implicitlyWait(timeout.IMPLICIT);
    browser.ignoreSynchronization = true;
    browser.waitForAngularEnabled(false);

    jasmine.getEnv().addReporter(
      new JasmineConsoleReporter({
        colors: 1,           // (0|false)|(1|true)|2
        cleanStack: 1,       // (0|false)|(1|true)|2|3
        verbosity: 4,        // (0|false)|1|2|(3|true)|4
        listStyle: 'indent', // "flat"|"indent"
        activity: false
    }));
     
  },

  jasmineNodeOpts: {
    showColors: true,
    includeStackTrace : true,
    isVerbose : true,
    defaultTimeoutInterval: 2500000
  }
  
};

An in-range update of uuid is breaking the build 🚨

Version 3.1.0 of uuid just got published.

Branch Build failing 🚨
Dependency uuid
Current Version 3.0.1
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

uuid is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this πŸ’ͺ

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 6 commits.

  • c50ac88 Update readme & package version (#198)
  • 082a0b3 v5 support in CLI (#197)
  • 1d56dc9 V5 support (#188)
  • f37f96a (fix) Add .npmignore file to exclude test/ and other non-essential files from packing. (#183)
  • 3b21880 Fix typo (#178)
  • d8e41bd Simple typo fix (#165)

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Exclude "image-to-ascii" from dependencies?

Is there a way to do this? I don't want to generate ascii images, and "image-to-ascii" has a transitive somewhere that depends on having a Python install. It's a bit of a pain to have to install Python for something that I'm not going to use.

For now i'm sticking with version 0.2.3 before you added the ascii stuff. Any ideas on a workaround going forward?

Test won't fail on some Angular log errors

Hi there, thx for great reporter and I faced with strange issue if there is a log error test won't failed in spite of failTestOnErrorLog option:
Error: http://localhost:9000/sales/cancel/24 - Failed to load resource: the server responded with a status of 500 (Internal Server Error). This error is only visible on 'Console reporter' tab and this test marked as passed.
Screenshot reporter tab
Console reporter tab
But if we produce console error manually - then test fails:
browser.executeScript('console.error("sample error")');
Plugin-config:

{
      package: 'protractor-screenshoter-plugin',
      screenshotPath: config.resultFolder + '/htmlreport',
      screenshotOnExpect: 'failure',
      screenshotOnSpec: 'failure+success',
      withLogs: true,
      failTestOnErrorLog: {
        failTestOnErrorLogLevel: 900,
        excludeKeywords: ['favicon.ico', '0/$compile/tpload?p0=public%2Fpartials%2Finvoices%2Flist.html']
      },
      writeReportFreq: 'spec',
      clearFoldersBeforeTest: false
    }

Chrome-options:

capabilities: {
    'browserName': 'chrome',
    loggingPrefs: {
      'driver': 'INFO',
      'browser': 'INFO'
    },
    'chromeOptions': {
      'args': ['--test-type', '--no-sandbox'],
      prefs: {
        'download': {
          "directory_upgrade": true,
          'prompt_for_download': false,
          'default_directory': path.resolve(__dirname, './downloads/'),
        },
      },
    }

Image-to-Ascii does not work

Hi there,

when I run your plugin with the settings:

...
plugins: [{
    package: 'protractor-screenshoter-plugin',
    screenshotPath: './.reports/e2e',
    screenshotOnExpect: 'failure+success',
    screenshotOnSpec: 'failure+success',
    imageToAscii: 'failure',
    clearFoldersBeforeTest: true,
    withLogs: false, // We could set this to true => https://www.npmjs.com/package/protractor-screenshoter-plugin#withlogs-chrome-only
    writeReportFreq: 'asap',
    verbose: 'debug'
  }],
...

I receive the following error:

{ AssertionError: protocol mismatch
    at parseOptions (/vagrant/app/webFrontend/node_modules/follow-redirects/create.js:131:10)
    at H.request (/vagrant/app/webFrontend/node_modules/follow-redirects/create.js:108:19)
    at tinyreq (/vagrant/app/webFrontend/node_modules/tinyreq/lib/index.js:69:65)
    at lwipify (/vagrant/app/webFrontend/node_modules/lwipify/lib/index.js:42:9)
    at ImageParser.parse (/vagrant/app/webFrontend/node_modules/image-parser/lib/index.js:56:13)
    at /vagrant/app/webFrontend/node_modules/image-to-ascii/lib/index.js:98:40
    at doSeq (/vagrant/app/webFrontend/node_modules/one-by-one/lib/index.js:44:15)
    at oneByOne (/vagrant/app/webFrontend/node_modules/one-by-one/lib/index.js:66:5)
    at imageToAscii (/vagrant/app/webFrontend/node_modules/image-to-ascii/lib/index.js:97:5)
    at /vagrant/app/webFrontend/node_modules/protractor-screenshoter-plugin/index.js:143:25
    at WriteStream.<anonymous> (/vagrant/app/webFrontend/node_modules/protractor-screenshoter-plugin/index.js:68:17)
    at emitNone (events.js:91:20)
    at WriteStream.emit (events.js:188:7)
    at finishMaybe (_stream_writable.js:510:14)
    at afterWrite (_stream_writable.js:384:3)
    at onwrite (_stream_writable.js:374:7)
  name: 'AssertionError',
  actual: null,
  expected: 'https:',
  operator: '==',
  message: 'protocol mismatch',
  generatedMessage: false }
Please check the installation at https://github.com/IonicaBizau/image-to-ascii/blob/master/INSTALLATION.md

This is not your fault, it is a bug in the parse-url https://github.com/IonicaBizau/parse-url package, which is used by the image-to-ascii package.

The plugin classifies the file ./.reports/e2e/screenshots/b65b6de0-3fc2-11e7-beba-83e02387b4aa.png as a remote file and wants to download it, which fails...

I have opened a PR with some tests for that: IonicaBizau/parse-url#13 and added a issue (I know, its the wrong repo, shame on me... -.- ) IonicaBizau/url-local#6

So if this bug is resolved, you should upgrade your dependencies ;)

Best regards,
Alex

TypeError: imageToAscii is not a function

Hi there!

Bug report

  • Your protractor configuration file
  • Protractor Version: 5.3.2
  • Browser(s): Chrome
  • Node Version: v10.11.0
  • Angular Version: ``
  • Operating System and Version Mac OS
    I am using protractor-screenshoter-plugin reporter for my protractor setup. But When I run my tests. I get the following error:

TypeError: imageToAscii is not a function
at /usr/local/lib/node_modules/protractor-screenshoter-plugin/index.js:216:13
at WriteStream. (/usr/local/lib/node_modules/protractor-screenshoter-plugin/index.js:101:9)
at WriteStream.emit (events.js:182:13)
at finishMaybe (_stream_writable.js:641:14)
at stream._final (_stream_writable.js:619:5)
at WriteStream._final (internal/fs/streams.js:264:3)
at callFinal (_stream_writable.js:612:10)
at process._tickCallback (internal/process/next_tick.js:63:19)
Please check the installation at https://github.com/IonicaBizau/image-to-ascii/blob/master/INSTALLATION.md

Following is the configuration I am using:

package: 'protractor-screenshoter-plugin',
screenshotPath: './end-to-end-test/REPORTS/e2e',
screenshotOnExpect: 'failure',
screenshotOnSpec: 'failure',
htmlOnExpect: 'failure+success',
htmlOnSpec:'failure+success',
withLogs: true,
htmlReport: true,
screenshotPath: './end-to-end-test/REPORTS/e2e/screenshots',
writeReportFreq: 'asap',
verbose: 'debug',
imageToAscii: 'failure+success',
clearFoldersBeforeTest: true,

Any idea why I am getting this error. Thanks in advance.

One screenshot per all tests in spec file

Hi, kudos for a great project.

I have multiple test files, for example:

/e2e/specs/articles.spec.ts
/e2e/specs/comments.spec.ts
/e2e/specs/users.spec.ts

each has multiple tests inside:

describe('Article', function() {
    it('should do something', function() {
        expect(...);
    });

    it('should do something', function() {
        expect(...);
    });

    it('should do something', function() {
        expect(...);
    });

As far as I see, screenshotOnSpec creates screenshot for every it('...') part. Is it possible to have only one screenshot per describe('...') part?

Cannot find module 'protractor-screenshoter-plugin'

Getting the below error while running the protractor config file.

[15:53:41] E/launcher - Cannot find module 'protractor-screenshoter-plugin'
[15:53:41] E/launcher - Error: Cannot find module 'protractor-screenshoter-plugin'
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Plugins.config.plugins.forEach (/usr/local/lib/node_modules/protractor/built/plugins.js:51:33)
at Array.forEach (native)
at new Plugins (/usr/local/lib/node_modules/protractor/built/plugins.js:38:28)
at Runner.run (/usr/local/lib/node_modules/protractor/built/runner.js:316:39)
at TaskRunner.run (/usr/local/lib/node_modules/protractor/built/taskRunner.js:109:27)
at createNextTaskRunner (/usr/local/lib/node_modules/protractor/built/launcher.js:234:28)
[15:53:41] E/launcher - Process exited with error code 199

Config.js :

exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['test/spec.js'],
framework: 'jasmine',

plugins: [{
package: 'protractor-screenshoter-plugin',
screenshotPath: 'test-result/screenshots',
screenshotOnExpect: 'failure+success',
screenshotOnSpec: 'none',
withLogs: 'true',
writeReportFreq: 'asap',
imageToAscii: 'failure',
clearFoldersBeforeTest: true
}],

onPrepare: function() {
    // returning the promise makes protractor wait for the reporter config before executing tests
    return global.browser.getProcessedConfig().then(function(config) {
        //it is ok to be empty
    });
}

Installed Failed at the [email protected] install script

node --version
v8.1.2
npm --version
5.0.3
Platform MAC OSX.

npm install -g protractor-screenshoter-plugin

[email protected] install /usr/local/lib/node_modules/protractor-screenshoter-plugin/node_modules/lwip2
node lib/install.js

Installing lwip. If this fails, just install GraphicsMagick (http://www.graphicsmagick.org/).
npm WARN deprecated [email protected]: This package is discontinued. Use lodash@^4.0.0.

[email protected] install /usr/local/lib/node_modules/lwip
node-gyp rebuild

CXX(target) Release/obj.target/lwip_decoder/src/decoder/init.o
CXX(target) Release/obj.target/lwip_decoder/src/decoder/util.o
CXX(target) Release/obj.target/lwip_decoder/src/decoder/buffer_worker.o
../src/decoder/buffer_worker.cpp:8:56: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
_height(0), _channels(0), _trans(false), _metadata("") {
^
1 warning generated.
n file included from ../src/lib/png/png.c:14:
../src/lib/png/pngpriv.h:805:4: error: ZLIB_VERNUM != PNG_ZLIB_VERNUM "-I (include path) error: see the notes in pngpriv.h"

error ZLIB_VERNUM != PNG_ZLIB_VERNUM \

^
1 error generated.
make: *** [Release/obj.target/lwip_decoder/src/lib/png/png.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack at emitTwo (events.js:125:13)
gyp ERR! stack at ChildProcess.emit (events.js:213:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12)
gyp ERR! System Darwin 16.6.0
gyp ERR! command "/usr/local/Cellar/node/8.1.2/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild
"
gyp ERR! cwd /usr/local/lib/node_modules/lwip
gyp ERR! node -v v8.1.2
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
It seems like lwip failed to be intalled. Please check the errors.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node lib/install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

An in-range update of protractor is breaking the build 🚨

Version 5.1.0 of protractor just got published.

Branch Build failing 🚨
Dependency protractor
Current Version 5.0.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As protractor is β€œonly” a devDependency of this project it might not break production or downstream projects, but β€œonly” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this πŸ’ͺ


Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build failed Details
Commits

The new version differs by 49 commits .

  • 1468c50 chore(release): version bump and update changelog for 5.1 (#4046)
  • f9bee84 fix(restart): preserve waitForAngularEnabled on restart and add promise chaining (#4047)
  • 5899b67 deps(update): update webdriver-manager to ^12.0.1 (#4042)
  • c021595 chore(spec): cast away typescript error message (#4044)
  • ba57db2 chore(doc-gen): fix the doc gen script (#4040)
  • 9a47ff8 docs(developers): add fixes and links to DEVELOPER.md (#4043)
  • 0b0c224 fix(plugins): do not force ManagedPromise in plugins.ts (#4036)
  • 0cd156d feat(debugging): Add webdriver logging and highlight delay. (#4039)
  • 9c2274d fix(restart): preserve properties like browser.baseUrl upon restart (#4037)
  • bb535d3 chore(types): better types for ProtractorPlugin (#4034)
  • b6207ea docs(website): fix up some old information about AngularJS vs Angular (#4038)
  • cd084a0 deps(jasmine): update jasmine to ^2.5.3 (#3960)
  • af6afa6 docs(developers): add basic DEVELOPER.md and update README (#4026)
  • f1971b7 chore(webdriver): remove element.serialize, since it is no longer part of webdriver (#3966)
  • 46a1e0c chore(types): Inherit from webdriver.WebDriver types (#4016)

There are 49 commits in total. See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.