
Watching remote tests run
Behat Testing
October 29, 2014
It can be incredibly helpful when you're troubleshooting Behat tests to watch the tests execute. It's fairly straightforward to install Selenium locally and watch @javascript tests execute in your browser of choice, a bit more challenging remotely.
Here's how I set up to do that on a remote Ubuntu 14.04 server.
VNC on the Server
- Install dependencies:
sudo apt-get install Xvfb tightvncserver xterm firefox
- Xvfb and xterm are required for Firefox to run on the remote server
- Firefox is required to run Behat's @javascript tests via Selenium
- A VNC server, in this case tightvncserver, allows you to install a VNC client locally and watch the remote session.
- Start the server
sudo vncserver
- Check the port:
You'll get output like the following. Notice the display designation on
the end, in this case, the digit 1:
New 'X' desktop is [servername]:1
Note: vncserver stays running. To verify the port it is listening on, use the command
sudo lsof -i -P | grep -i "listen"
. - Start Selenium:
You'll need to specify the display when you start Selenium, and it doesn't hurt to use the command from the Not enough entropy post to be sure it's listening properly.
DISPLAY=:1 java -jar -Djava.security.egd=file:/dev/./urandom [your/path/to/selenium.jar]
VNC on your desktop
- Install a VNC Viewer
I run Ubuntu on the desktop and use TightVNC's viewer:
sudo apt-get install vncviewer
- Open an ssh tunnel:
On your local machine use the following command a terminal to create an ssh tunnel to the server. The last digit of the port corresponds to the display:
ssh [serveraddress] -L 5901:localhost:5901
This stays open in its own shell tab. - Run the local vncviewer:
vncviewer localhost:5901
Deploy Anywhere, Monitor Everything Drupal.