46 lines
1.1 KiB
Bash
Executable File
46 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# run unit tests under nose if available,
|
|
# optionally with coverage
|
|
#
|
|
# test.sh [cover [gluon.rewrite]]
|
|
#
|
|
# easy_install nose
|
|
# easy_install coverage
|
|
#
|
|
NOSETESTS=nosetests
|
|
COVER=gluon # change to (eg) gluon.rewrite to collect coverage stats on a single module
|
|
PROCESSES=4
|
|
|
|
WHICH=`which $NOSETESTS`
|
|
if [ "$WHICH" == "" ]; then
|
|
# if nose isn't available, run the tests directly
|
|
for testmod in test_*.py; do
|
|
python $testmod
|
|
done
|
|
else
|
|
if [ "$1" = "cover" ]; then
|
|
# note: coverage doesn't handle multiple processes
|
|
if [ "$2" != "" ]; then
|
|
COVER=$2
|
|
fi
|
|
$NOSETESTS --with-coverage --cover-package=$COVER --cover-erase
|
|
elif [ "$1" = "doctest" ]; then
|
|
# this has to run in gluon's parent; needs work
|
|
#
|
|
# the problem is that doctests run this way have a very different environment,
|
|
# apparently due to imports that don't happen in the normal course of running
|
|
# doctest via __main__.
|
|
#
|
|
echo doctest not supported >&2
|
|
exit 1
|
|
if [ ! -d gluon ]; then
|
|
cd ../..
|
|
fi
|
|
$NOSETESTS --with-doctest
|
|
else
|
|
$NOSETESTS --processes=$PROCESSES
|
|
fi
|
|
fi
|
|
|