sintonia/docs/testing.md

75 lines
1.9 KiB
Markdown

# Testing LibreTime
## MVC
The MVC tests are based on PHPUnit and may be found in `airtime_mvc/tests`.
You can run the tests in you working copy as described below or let travis
run them for you on pushes.
### Prepare environment
PHPUnit will need to be able to access the database and be allowed to
create the libretime_test database. On a clean postgresql install this may
be set up as follows.
```bash
psql -c 'CREATE DATABASE libretime;' -U postgres
psql -c "CREATE USER libretime WITH PASSWORD 'libretime';" -U postgres
psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;' -U postgres
psql -c 'ALTER USER libretime CREATEDB;' -U postgres
```
In this case the libretime database is only used for the initial connection
over which the libretime_test database is created.
You may need to tweak the exact commands needed to setup postgresql depending
on the distro you installed this to. On Ubuntu trusty the above can be
acheived as follows.
```bash
sudo -u postgres psql -c 'CREATE DATABASE libretime;'
sudo -u postgres psql -c "CREATE USER libretime WITH PASSWORD 'libretime';"
sudo -u postgres psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;'
sudo -u postgres psql -c 'ALTER USER libretime CREATEDB;'
```
### Install PHPUnit
PHPUnit should have already been installed when you ran `composer install`.
If you have not done so, now is the time to do so.
### Run the tests
```bash
# run all tests
cd airtime_mvc/tests
../../vendor/bin/phpunit
# run a subset of tests
../../vendor/bin/phpunit --filter testEditReatingShowInstance
```
## Python
The python tests are run through nosetest. To prepare your env you should install
it.
```bash
# Debian/Ubuntu
apt-get install python-nose
# CentOS
yum install -y python-nose
```
In most cases you need to install deps before the tests can be run.
### Airtime Analyzer
```bash
cd python_apps/airtime_analyzer
nosetests
```