bug fix on log file creation for unit tests
[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 # then useless log files must belong to jenkins:jenkins
29 # or it is local tests and we do not care
30 if [ -z $WORKSPACE ]
31 then
32     WORKSPACE="."
33 else
34     sudo chown -Rf jenkins:jenkins /home/opnfv
35     # as we import the module from the home repo
36     # and in jenkins the name is different
37     # functest-verify-master != functest
38     # make some ugly adjustments...
39     cd $WORKSPACE
40     export PYTHONPATH="${PYTHONPATH}:$WORKSPACE"
41     cd ..
42
43     if [ ! -d "./functest" ]
44     then
45     ln -s functest-verify-master functest
46     fi
47 fi
48
49
50 # ***************
51 # Run unit tests
52 # ***************
53 echo "Running unit tests..."
54
55 # start vitual env
56 virtualenv $WORKSPACE/functest_venv
57 source $WORKSPACE/functest_venv/bin/activate
58
59 # install python packages
60 easy_install -U setuptools
61 easy_install -U pip
62 pip install -r $WORKSPACE/docker/requirements.pip
63 pip install -e $WORKSPACE
64
65 python $WORKSPACE/setup.py develop
66
67 # unit tests
68 # TODO: remove cover-erase
69 # To be deleted when all functest packages will be listed
70 nosetests --with-xunit \
71          --with-coverage \
72          --cover-erase \
73          --cover-package=functest.core.TestCasesBase \
74          --cover-package=functest.testcases.Controllers.ODL.OpenDaylightTesting \
75          --cover-xml \
76          --cover-html \
77          unit_tests
78 rc=$?
79
80 deactivate
81
82 # *******
83 # clean
84 # *******
85 # First as we had to start the test from ..
86 # Push the results upstream for jenkins
87 if [ $WORKSPACE != "." ]
88 then
89     mv coverage.xml nosetests.xml $WORKSPACE
90 fi
91
92 # Clean useless logs
93 if [ -d "/home/opnfv/functest/results" ]
94 then
95     sudo rm -rf /home/opnfv/functest/results
96 fi
97
98 exit $rc