05b3c4ee2ce8bb282d0361ad9ee8e5032ca60a33
[functest.git] / run_unit_tests.sh
1 #!/bin/bash
2 set -o errexit
3 set -o pipefail
4
5 # ******************************
6 # prepare the env for the tests
7 # ******************************
8 # clean useless results dir
9 # should be done at the end
10 # but in case of crash during unit test
11 # clean it anyway
12 if [ -d "/home/opnfv/functest/results" ]
13 then
14     sudo rm -rf /home/opnfv/functest
15 fi
16
17 # TODO clean that...
18 # Create log dir if needed
19 # log shall be disabled during unit tests
20 # fix to be done in Logger
21 echo "Create dummy log file...."
22 sudo mkdir -p /home/opnfv/functest/results/odl
23 sudo touch /home/opnfv/functest/results/functest.log
24 sudo touch /home/opnfv/functest/results/odl/stdout.txt
25 sudo chmod -Rf a+rw /home/opnfv
26
27 # Either Workspace is set (CI)
28 if [ -z $WORKSPACE ]
29 then
30     WORKSPACE="."
31 fi
32
33
34 # ***************
35 # Run unit tests
36 # ***************
37 echo "Running unit tests..."
38
39 # start vitual env
40 virtualenv $WORKSPACE/functest_venv
41 source $WORKSPACE/functest_venv/bin/activate
42
43 # install python packages
44 easy_install -U setuptools
45 easy_install -U pip
46 pip install -r $WORKSPACE/test-requirements.txt
47
48
49 pip install -e $WORKSPACE
50
51 python $WORKSPACE/setup.py develop
52
53 export CONFIG_FUNCTEST_YAML=$(pwd)/functest/ci/config_functest.yaml
54 # unit tests
55 # TODO: remove cover-erase
56 # To be deleted when all functest packages will be listed
57 nosetests --with-xunit \
58          --with-coverage \
59          --cover-erase \
60          --cover-package=functest.core.testcase_base \
61          --cover-package=functest.opnfv_tests.sdn.odl.odl \
62          --cover-xml \
63          --cover-html \
64          functest/tests/unit
65 rc=$?
66
67 deactivate
68
69 # *******
70 # clean
71 # *******
72 # Clean useless logs
73 if [ -d "/home/opnfv/functest/results" ]
74 then
75     sudo rm -rf /home/opnfv/functest/results
76 fi
77
78 exit $rc