diff options
-rwxr-xr-x | run_unit_tests.sh | 85 | ||||
-rw-r--r-- | setup.py | 2 |
2 files changed, 80 insertions, 7 deletions
diff --git a/run_unit_tests.sh b/run_unit_tests.sh index 80767d4d..96b4a580 100755 --- a/run_unit_tests.sh +++ b/run_unit_tests.sh @@ -2,25 +2,100 @@ set -o errexit set -o pipefail +# ****************************** +# prepare the env for the tests +# ****************************** +# clean useless results dir +# should be done at the end +# but in case of crash during unit test +# clean it anyway +if [ -d "/home/opnfv/functest/results" ] +then + sudo rm -rf /home/opnfv/functest +fi + +# TODO clean that... +# Create log dir if needed +# log shall be disabled during unit tests +# fix to be done in Logger +if [ ! -d "/home/opnfv/functest/results" ] +then + echo "Create dummy log file...." + sudo mkdir -p /home/opnfv/functest/results/odl + sudo touch /home/opnfv/functest/results/functest.log + sudo touch /home/opnfv/functest/results/odl/stdout.txt + sudo chmod -Rf a+rw /home/opnfv +fi + +# Either Workspace is set (CI) +# then useless log files must belong to jenkins:jenkins +# or it is local tests and we do not care +if [ -z $WORKSPACE ] +then + WORKSPACE="." +else + sudo chown -Rf jenkins:jenkins /home/opnfv + # as we import the module from the home repo + # and in jenkins the name is different + # functest-verify-master != functest + # make some ugly adjustments... + cd $WORKSPACE + export PYTHONPATH="${PYTHONPATH}:$WORKSPACE" + cd .. + + if [ ! -d "./functest" ] + then + ln -s functest-verify-master functest + fi +fi + + +# *************** +# Run unit tests +# *************** echo "Running unit tests..." -cd . # start vitual env -virtualenv ./functest_venv -source ./functest_venv/bin/activate +virtualenv $WORKSPACE/functest_venv +source $WORKSPACE/functest_venv/bin/activate # install python packages easy_install -U setuptools easy_install -U pip -pip install -r docker/requirements.pip -pip install -e . +pip install -r $WORKSPACE/docker/requirements.pip +pip install -e $WORKSPACE + +python $WORKSPACE/setup.py develop # unit tests +# TODO: remove cover-erase +# To be deleted when all functest packages will be listed nosetests --with-xunit \ --with-coverage \ + --cover-erase \ --cover-package=functest.core.TestCasesBase \ --cover-package=functest.testcases.Controllers.ODL.OpenDaylightTesting \ --cover-xml \ + --cover-html \ unit_tests +rc=$? deactivate + +# ******* +# clean +# ******* +# First as we had to start the test from .. +# Push the results upstream for jenkins +if [ $WORKSPACE != "." ] +then + mv coverage.xml nosetests.xml $WORKSPACE +fi + +# Clean useless logs +if [ -d "/home/opnfv/functest/results" ] +then + sudo rm -rf /home/opnfv/functest/results +fi + +exit $rc @@ -19,6 +19,4 @@ setup( install_requires=["coverage==4.1", "mock==1.3.0", "nose==1.3.7"], - entry_points={ - } ) |