Adds some features to run_tests.sh:

- if it crashes right away with a short erorr log, print that directly
- allow specifying tests without the nova.tests part
This commit is contained in:
termie
2011-02-23 18:46:38 +00:00
committed by Tarmac
2 changed files with 39 additions and 2 deletions

View File

@@ -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
@@ -62,6 +79,15 @@ class NovaTestRunner(core.TextTestRunner):
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,
@@ -70,4 +96,4 @@ if __name__ == '__main__':
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))

View File

@@ -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"