Skip to content

Commit

Permalink
Adds some features to run_tests.sh:
Browse files Browse the repository at this point in the history
- if it crashes right away with a short erorr log, print that directly
- allow specifying tests without the nova.tests part
  • Loading branch information
termie authored and Tarmac committed Feb 23, 2011
2 parents 9664c9d + 2bbbfc5 commit dbb77c9
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
28 changes: 27 additions & 1 deletion run_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,23 @@
# See the License for the specific language governing permissions and
# limitations under the License.

"""Unittest runner for Nova.
To run all tests
python run_tests.py
To run a single test:
python run_tests.py test_compute:ComputeTestCase.test_run_terminate
To run a single test module:
python run_tests.py test_compute
or
python run_tests.py api.test_wsgi
"""

import gettext
import os
import unittest
Expand Down Expand Up @@ -62,6 +79,15 @@ def _makeResult(self):

if __name__ == '__main__':
logging.setup()
# If any argument looks like a test name but doesn't have "nova.tests" in
# front of it, automatically add that so we don't have to type as much
argv = []
for x in sys.argv:
if x.startswith('test_'):
argv.append('nova.tests.%s' % x)
else:
argv.append(x)

c = config.Config(stream=sys.stdout,
env=os.environ,
verbosity=3,
Expand All @@ -70,4 +96,4 @@ def _makeResult(self):
runner = NovaTestRunner(stream=c.stream,
verbosity=c.verbosity,
config=c)
sys.exit(not core.run(config=c, testRunner=runner))
sys.exit(not core.run(config=c, testRunner=runner, argv=argv))
13 changes: 12 additions & 1 deletion run_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,18 @@ done
function run_tests {
# Just run the test suites in current environment
${wrapper} rm -f nova.sqlite
${wrapper} $NOSETESTS
${wrapper} $NOSETESTS 2> run_tests.err.log
# If we get some short import error right away, print the error log directly
RESULT=$?
if [ "$RESULT" -ne "0" ];
then
ERRSIZE=`wc -l run_tests.err.log | awk '{print \$1}'`
if [ "$ERRSIZE" -lt "40" ];
then
cat run_tests.err.log
fi
fi
return $RESULT
}

NOSETESTS="python run_tests.py $noseargs"
Expand Down

0 comments on commit dbb77c9

Please sign in to comment.