Testing/Behat Testing/Error & Solutions
From Mahara Wiki
< Testing/Behat TestingRevision as of 09:36, 30 March 2015 by Jinelleb
Errors when using Behat
This is a place where you can log errors and come to fix yours. If you log an error please be sure to put down how you fixed it
Selenium upgrades causing firefox to try run headless and not open firefox. It can also throw an error when you try run the test. It will mention something about the Selenium server not being able to start up.
TO FIX: Go to the mahara_sh script. Currently located in mahara/test/behat and update the version. I can access that in the file explorer and then I just change the version number and then it auto updates when I run the ./test/behat/mahara_behat.sh rundebug @tag
To find out if Selenium has updated to a new version, go to http://www.seleniumhq.org/download/ and see version of the Selenium Server is available.
You might need to do some more debugging. But this information should point you in the right direction.
Another bug with Selenium is if you are using Moodle or running Behat from two diff versions of Mahara is sometimes the Selenium Server doesn't shut down properly. You will know this is happening if you've run the tests and it says at the end "Selenium server not not shut down" or it just wont say that's it has shut down. It will be written the same way it does when Selenium starts up when you run the tests.
Eg: Composer installing... PHP server running, Selenium running. At the end of the tests running it says the same thing.. PHP server shut down... Selenium shut down. It may also say "Selenium server is not running or could not be run" or something similar. This is because there are 2 running and it's getting confused
TO FIX: Temporary fix, go to the terminal and type
ps aux | grep selenium
And then kill the process ID. This is the first number after your username.
<username>@boris:~$ ps aux | grep selenium <username> 6590 0.0 0.0 12960 936 pts/26 S+ 10:31 0:00 grep --color=auto selenium
So the command will be
However don't kill the one that say's --color=auto selenium kill the other one.
This will just kill the other selenium running so you can finish what you are working on and run the test properly.
Once you have done that, if you are a dev take a look into the mahara_behat.sh script because there will be something up with the way that selenium is shutting down. Also check that this issue isn't happening with Jenkins.
If you aren't a dev then go tell one of the devs that it's not shutting down properly. You can do this by writing a bug on Launchpad here: https://bugs.launchpad.net/mahara/+filebug
Firefox upgrades and when you run the tests Firefox wont pop up with the Mahara instance in it. Another issue is the window opening but Behat not being able to run the test properly and it will say that you cant log in. It will run the first log in steps (say as an admin) but it wont pass the next step (to verify that the admin can be logged in) and if you actually look at Behat running (requires you to not be running it headless) then you will see it's not actually logging in.
TO FIX: Generally Firefox and Selenium are heavily entwined. When Firefox breaks, go to http://www.seleniumhq.org/download/ and download the newer version of Selenium. When one upgarades it's usually best to upgrade the other at the same time so they are compatible.
If all else fails then revert back to the previous stable version.
I change directory to downloads and run this in a separate terminal. This requires you to have the previous version of Firefox downloaded. java -jar selenium-server-standalone-2.44.0.jar -Dwebdriver.firefox.bin=/home/jinelleb/Downloads/firefox/firefox