> @Ninir: After thinking about that, I think it will better to use a dedicated script to launch all tests. We have to following elements to check:

> Bash functions
Python modules and functions
Installer / Uninstaller
When CR is installed on the virtual machine: testing if the web part is working well / testing if binary script works ("centralreport stop", "centralreport restart" etc.)

This is part of the tests: one test should check CR for a given behavior, another test should check it for another situation, etc.

> To being cleaner, we can create a "tests" directory in the bash part, and another in the python part.
Each script will test one script/module (http://docs.python.org/2/library/unittest.html). And we can have a "global" script which launches all "sub" scripts. Travis just launches the "global" bash and the global python scripts.

Well, first, we have to see how tests are run for bash and python. For instance, PHP is using phpunit. This way, we only need to launch `phpunit` in travis as a command.
Why not doing it for bash, something in the idea of:

```yml
before_script:
- install.sh

script:
- bashunit # :smile:
- python -m unittest

after_script:
- uninstall.sh
```

This way, you are trying the installation (which is a pre-requisite). Then you check all your bash code, then your python code, then the uninstall.

Don't see any issue at the moment with this reasoning.