Continuous integration/Workflow 2014

The below will naturally work from both our production Jenkins, its slaves or your local test environment. It tests against the local MediaWiki install (either the one you have locally, or the one Jenkins set up for the (currently being evaluated) change set in Gerrit).


 * 1) Rewrite tests in nodejs using [wd](https://github.com/admc/wd) (instead of Ruby and cucumber‎).
 * 2) * easier integration with existing npm modules for webdriver, saucelabs-connect tunnel and more
 * 3) * integration with Grunt-based workflow
 * 4) * It will also make it easier to contribute for the people who are actually going to be mainly maintaining this (MediaWiki and VisualEditor developers) as, once integrated, they will have to start fixing tests as needed for new patches (we can't have QA fix them up once they discover a change that broke something hardcoded in the tests, it will need to be fixed prior to merging), and for them to provide new test suites as well (this should become a requirement like we already require unit tests for new components).


 * 1) In the test wrapper (in Grunt presumably) execute the tests on local phantomjs with webdriver – after the MediaWiki is installed (which is done already by Jenkins, and locally people are expected to have it set up anyway)
 * 2) If saucelabs credentials are availabl (e.g. basic local test vs. jenkins), continue on to set up the saucelabs-connect tunnel for the local MediaWiki host, and loop through the configured set of browsers and for each do the regular saucelabs run.
 * 3) Log (link to) results to the console output
 * 4) Mark build as failure if there is at least 1 error.