~usc-isi/nova/cover-script

« back to all changes in this revision

Viewing changes to run_tests.sh

  • Committer: Lorin Hochstein
  • Date: 2011-05-22 13:01:32 UTC
  • Revision ID: lorin@isi.edu-20110522130132-8jpznbe7pajhwwnt
Added support for generating coverage reports when running unit tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
  echo "  -N, --no-virtual-env     Don't use virtualenv.  Run tests in local environment"
9
9
  echo "  -x, --stop               Stop running tests after the first error or failure."
10
10
  echo "  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added."
11
 
  echo "  -p, --pep8               Just run pep8"
 
11
  echo "  -p, --pep8               Just run pep8."
 
12
  echo "  -c, --coverage           Generate a coverage testing report."
12
13
  echo "  -h, --help               Print this usage message"
13
14
  echo ""
14
15
  echo "Note: with no options specified, the script will try to run the tests in a virtual environment,"
24
25
    -N|--no-virtual-env) let always_venv=0; let never_venv=1;;
25
26
    -f|--force) let force=1;;
26
27
    -p|--pep8) let just_pep8=1;;
 
28
    -c|--coverage) let coverage=1;;
27
29
    *) noseargs="$noseargs $1"
28
30
  esac
29
31
}
36
38
noseargs=
37
39
wrapper=""
38
40
just_pep8=0
 
41
coverage=0
39
42
 
40
43
for arg in "$@"; do
41
44
  process_option $arg
67
70
  srcfiles=`find bin -type f ! -name "nova.conf*"`
68
71
  srcfiles+=" `find tools/*`"
69
72
  srcfiles+=" nova setup.py plugins/xenserver/xenapi/etc/xapi.d/plugins/glance"
70
 
  pep8 --repeat --show-pep8 --show-source --exclude=vcsversion.py ${srcfiles}
 
73
  ${wrapper} pep8 --repeat --show-pep8 --show-source --exclude=vcsversion.py ${srcfiles}
71
74
}
72
75
 
73
76
if [ $just_pep8 -eq 1 ]; then
75
78
    exit
76
79
fi
77
80
 
78
 
NOSETESTS="python run_tests.py $noseargs"
 
81
if [ $coverage -eq 1 ]; then
 
82
    NOSETESTS="coverage run run_tests.py $noseargs"
 
83
else
 
84
    NOSETESTS="python run_tests.py $noseargs"
 
85
fi
79
86
 
80
87
if [ $never_venv -eq 0 ]
81
88
then
103
110
  fi
104
111
fi
105
112
 
 
113
# Remove previous coverage reporting data
 
114
if [ $coverage -eq 1 ]; then
 
115
    ${wrapper} coverage erase
 
116
fi
 
117
 
106
118
run_tests || exit
107
119
 
108
120
# Also run pep8 if no options were provided.
109
121
if [ -z "$noseargs" ]; then
110
122
  run_pep8
111
123
fi
 
124
 
 
125
# Generate coverage report
 
126
if [ $coverage -eq 1 ]; then 
 
127
    ${wrapper} coverage html --ignore-errors -d htmlcov
 
128
    ${wrapper} coverage xml --ignore-errors -d nova/tests
 
129
fi