bugfix: tc055 fail due to options with no value
[yardstick.git] / run_tests.sh
index c8d8e7d..b3cbfb1 100755 (executable)
@@ -9,10 +9,19 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
-# Run yardstick's test suite(s)
+# Run yardstick's flake8, unit, coverage, functional test
 
 getopts ":f" FILE_OPTION
 
+# don't write .pyc files this can cause odd unittest results
+export PYTHONDONTWRITEBYTECODE=1
+
+PY_VER="py$( python --version | sed 's/[^[:digit:]]//g' | cut -c-2 )"
+export PY_VER
+
+COVER_DIR_NAME="./tests/ci/"
+export COVER_DIR_NAME
+
 run_flake8() {
     echo "Running flake8 ... "
     logfile=test_results.log
@@ -33,7 +42,10 @@ run_flake8() {
     fi
 }
 
+
 run_tests() {
+    echo "Get external libs needed for unit test"
+
     echo "Running unittest ... "
     if [ $FILE_OPTION == "f" ]; then
         python -m unittest discover -v -s tests/unit > $logfile 2>&1
@@ -53,6 +65,32 @@ run_tests() {
     fi
 }
 
+run_coverage() {
+    # don't re-run coverage on both py27 py3, it takes too long
+    if [[ -z $SKIP_COVERAGE ]] ; then
+        source $COVER_DIR_NAME/cover.sh
+        run_coverage_test
+    fi
+}
+
+run_functional_test() {
+
+    mkdir -p .testrepository
+    python -m subunit.run discover tests/functional > .testrepository/subunit.log
+
+    subunit2pyunit < .testrepository/subunit.log
+    EXIT_CODE=$?
+    subunit-stats < .testrepository/subunit.log
+
+    if [ $EXIT_CODE -ne 0 ]; then
+        exit 1
+    else
+        echo "OK"
+    fi
+}
+
+
 run_flake8
 run_tests
-
+run_coverage
+run_functional_test