Actions

Difference between revisions of "Testing/Behat Testing/Setup"

From Mahara Wiki

< Testing/Behat Testing
(Behat installation)
(Behat installation)
Line 108: Line 108:
  
 
Make sure you are on the lastest code on master:
 
Make sure you are on the lastest code on master:
  cd yourmaharacodedir
+
  cd ~/code/mahara
 
  git checkout master
 
  git checkout master
 
  git pull  
 
  git pull  
Line 119: Line 119:
 
// Behat config
 
// Behat config
 
$cfg->dbprefix = ''; // Behat complains without this
 
$cfg->dbprefix = ''; // Behat complains without this
$cfg->wwwroot = 'http://127.0.0.1/mahara/htdocs';   (CHECK WITH HUGH RE THIS LINE)
+
$cfg->wwwroot = 'http://mahara/';
 
$cfg->behat_dbprefix = 'behat_'; // must not empty
 
$cfg->behat_dbprefix = 'behat_'; // must not empty
$cfg->behat_dataroot = '/var/www/maharadata/behat'; (THIS LINE WILL NEED TO BE CHANGED, DONT PUT THIS COMMENT IN THERE)
+
$cfg->behat_dataroot = "/var/lib/maharadata/$branch/behat";
 
$cfg->behat_wwwroot = 'http://localhost:8000';
 
$cfg->behat_wwwroot = 'http://localhost:8000';
 
</pre>
 
</pre>
  
 
Make a data directory (check this is correct):
 
Make a data directory (check this is correct):
  sudo mkdir /var/www/maharadata/behat
+
  sudo mkdir /var/lib/maharadata/master/behat
  
 
Make directory writeable by mahara (check this is correct):  
 
Make directory writeable by mahara (check this is correct):  
  sudo chmod 777 /var/www/maharadata/behat
+
  sudo chmod 777 /var/lib/maharadata/master/behat
  
 
Run Behat tests (change into your Mahara code directory first)
 
Run Behat tests (change into your Mahara code directory first)

Revision as of 08:42, 14 January 2015

How to install Mahara and Behat

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


For dev's instructions to install a Mahara

Please use System_Administrator's_Guide/Installing_Mahara.


Otherwise, if you do not have Mahara installed

Note: If you do have Mahara already installed, skip to #Behat_installation


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

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 https://github.com/MaharaProject/mahara.git .

Checkout the master(15.04) branch

git checkout master

Note: if this step doesn't work. You may have forgotten the fullstop off the end of the git clone command. It created a mahara directory inside the other mahara directory. Go in to the file explorer and delete the second instance.

Become Postgres user:

sudo su postgres

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

psql

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:

exit

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.

<?php
$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

Install Behat's dependencies:

sudo apt-get install curl openjdk-7-jre-headless xvfb

Make sure you are on the lastest code on master:

cd ~/code/mahara
git checkout master
git pull 

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

Note: If /var/www/maharadata is not where you created your dataroot, you'll need to replace that with the correct path in the following commands
// Behat config
$cfg->dbprefix = ''; // Behat complains without this
$cfg->wwwroot = 'http://mahara/';
$cfg->behat_dbprefix = 'behat_'; // must not empty
$cfg->behat_dataroot = "/var/lib/maharadata/$branch/behat";
$cfg->behat_wwwroot = 'http://localhost:8000';

Make a data directory (check this is correct):

sudo mkdir /var/lib/maharadata/master/behat

Make directory writeable by mahara (check this is correct):

sudo chmod 777 /var/lib/maharadata/master/behat

Run Behat tests (change into your Mahara code directory first)

./test/behat/mahara_behat.sh run

For the first time of running behat, you need to wait for the Behat environment initialisation. This can take a while.

Run your specific test from now on run: Make sure it's saved in the feature folder with the name something.feature and it has tags in it, inc @javascript and then run this line from the mahara directory: Remember cd into Mahara directory first.

./test/behat/mahara_behat.sh run @yourtags