Protractor end to end testing for AngularJS - dockerised with headless real Chrome.
PhantomJS is discouraged by Protractor creators and for a good reason. It's basically a bag of problems.
To be perfectly honest - it is a real chrome running on xvfb. Therefore you have every confidence that the tests are run on the real thing.
docker run -it --rm --net=host -v /dev/shm:/dev/shm -v $(pwd):/protractor webnicer/protractor-headless [protractor options]
This will run protractor in your current directory, so you should run it in your tests root directory. It is useful to create a script, for example /usr/local/bin/protractor.sh such as this:
#!/bin/bash
docker run -it --rm --net=host -v /dev/shm:/dev/shm -v $(pwd):/protractor webnicer/protractor-headless $@
The script will allow you to run dockerised protractor like so:
protractor.sh [protractor options]
Docker has hardcoded value of 64MB for /dev/shm
. Because of that you can encounter an error session deleted becasue of page crash on memory intensive pages. The easiest way to mitigate that problem is share /dev/shm
with the host.
This needs to be done till docker build
gets the option --shm-size
.