Testing Area/Behat Testing/Setup

From Mahara Wiki

< Testing Area‎ | Behat Testing
Revision as of 06:56, 7 January 2015 by Jinelleb (talk | contribs)

How to install Mahara and Behat

Note: These instructions for Mahara and Behat setup are only for machines running Linux. They will not for Windows machines

For devs instructions to install a Mahara please follow:


For Catalyst Moodle devs with a Moodle already installed please follow:


For everyone else please follow the steps below:

Install Apache, PHP5, Database, Git:

 sudo apt-get install php5 php5-cli php5-pgsql php5-xmlrpc php5-intl php5-curl php5-gd php5-xdebug php5-dbg postgresql apache2 git curl

Restart Apache

  sudo service apache2 restart

Make a Mahara directory in the same place as Moodle

  sudo mkdir /var/www/html/mahara

Then change into the Mahara directory

 cd /var/www/html/mahara

Then change the permission (insert the username of the machine into the username. Don't use the word username)

sudo chown username:username /var/www/html/mahara

Get Mahara clone.

  git clone .

Checkout the master(15.04) branch

  git checkout master

Become Postgres user:

 sudo su postgres

Open psql. After some preamble you should see the prompt postgres=#.


You should now see postgres=# ready and awaiting your command.

Create a user and don't use the PW that you use for your workstation:

 CREATE USER maharauser WITH PASSWORD 'yourpassword';

As you previously did, you should see postgres=# You are now going to create a database:

 CREATE DATABASE mahara WITH OWNER maharauser;

Exit to leave psql by pressing Ctrl-D

Exit back to your own user:


Make a data directory:

 sudo mkdir /var/www/maharadata

Make directory writeable by mahara:

 sudo chmod 777 /var/www/maharadata

In the code below make sure you change <your email address> to your actual work email address, without the <> signs.

$cfg = new stdClass();

$branch = 'master';

// database connection details
// valid values for dbtype are 'postgres8' and 'mysql5'
$cfg->dbtype   = 'postgres';
$cfg->dbhost   = 'localhost';
$cfg->dbuser   = 'maharauser';
$cfg->dbname   = "mahara";
$cfg->dbpass   = 'password'; 

$cfg->dataroot = "/var/www/maharadata";

$cfg->sendemail = true;
$cfg->sendallemailto = '<your email address>';

$cfg->productionmode = false;
$cfg->perftofoot = true;

An example config.php should appear:

  • Copy all of the code above
  • open text editor from start menu
  • paste code
  • save file in the directory: /var/www/html/mahara/htdocs/ and call it config.php
  • save

Behat installation with Mahara

Add these config settings to the bottom of your config.php file.

// Behat config
$cfg->dbprefix = ''; // Behat complains without this
$cfg->wwwroot = ''
$cfg->behat_dbprefix = 'behat_'; // must not empty
$cfg->behat_dataroot = '/var/www/maharadata/behat';
$cfg->behat_wwwroot = 'http://localhost:8000';

Make a data directory:

 sudo mkdir /var/www/maharadata/behat

Make directory writeable by mahara:

 sudo chmod 777 /var/www/maharadata/behat

Run Behat tests

  cd /var/www/html/mahara
  ./test/behat/ run @yourtags

For the first time of running behat, you need to wait for the Behat environment initialisation.

Disable test site

 ./test/behat/ action disable