Run Protractor e2e tests.
Other plugins exist, but I just wanted something simple that passed the required options through to the Protractor command.
This plugin requires Grunt
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
$ npm install grunt-ptor --save-dev
Note that this plugin leaves the Selenium server management up to another tool. I use grunt-protractor-webdriver, which is then set up as a pre-requisite task to this plugin.
The "ptor" task
In your project's Gruntfile, add a section named
ptor to the data object passed into
See the Protractor reference conf for the options you can use in both the
Gruntfile and via the command line.
The order of precendence for options is: command line > target level > task level > Protractor conf file.
$ grunt ptor --chromeOnly --params.login.user=Jane --params.login.password=1234
$ grunt test
A child process is spawned within each test so we can execute the task from end to end. This makes method stubbing a little tricky since we are executing in a different process, so a couple of helper tasks are also used:
presets up any required stubs
postsends the required information back to the parent process.
This way we can test our expectations in the parent process.