webdriverio-boneyard / webdrivercss

Regression testing tool for WebdriverIO v4
http://webdriver.io
MIT License
615 stars 106 forks source link

Split webdrivercss into multiple packages #113

Open elicwhite opened 9 years ago

elicwhite commented 9 years ago

Webdrivercss currently does a lot of different things. It takes screenshots, calculates diffs, uploads to aplitools / api, has testing helpers for images within tolerances etc.

I believe these are all distinct functions that people might want to swap with other options and should be packages layered on top of webdrivercss.

Here is my proposal:

By splitting this up into multiple packages people can replace or swap the functionality that they want.

For example, I want to take screenshots, but I don't want to generate any diffs locally and I need to upload to a different server with different endpoints than webdrivercss-adminpanel. I've had to clear the image folder every time so that webdrivercss doesn't try to generate any diffs and write my own upload at the end.

amitaibu commented 9 years ago

I'm very in favor of splitting this. I haven't thought about the assertion package, but it's probably a good idea.

klamping commented 9 years ago

WebdriverIO has a screenshot command that could be improved to allow selectors to be passed in: http://webdriver.io/api/utility/saveScreenshot.html

christian-bromann commented 9 years ago

@klamping it's a good idea but it would require additional requirements (gm). We could enhance webdrivercss to provide a new command for the client instance.

georgecrawford commented 9 years ago

:+1: to the general idea of splitting the repo into separate packages. I only want to use a few of the functions the complete package provides.

georgecrawford commented 8 years ago

@christian-bromann Could you add your thoughts regarding splitting webdrivercss into separate modules? Especially with regard to interoperability with webdriverio v4.0?

I'm very interested in this project, but wouldn't want all the functionality it provides. We're currently using Wraith, but we're very limited by not being able to run real interactions with the page before taking screenshots.