diff options
Diffstat (limited to 'runtests.py')
-rwxr-xr-x | runtests.py | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/runtests.py b/runtests.py index 7a72ca517..976a0cbbf 100755 --- a/runtests.py +++ b/runtests.py @@ -13,6 +13,7 @@ Examples:: $ python runtests.py --ipython $ python runtests.py --python somescript.py $ python runtests.py --bench + $ python runtests.py --timer 20 Run a debugger: @@ -77,6 +78,8 @@ def main(argv): parser.add_argument("--coverage", action="store_true", default=False, help=("report coverage of project code. HTML output goes " "under build/coverage")) + parser.add_argument("--timer", action="store", default=0, type=int, + help=("Time N slowest test")) parser.add_argument("--gcov", action="store_true", default=False, help=("enable C code coverage via gcov (requires GCC). " "gcov output goes to build/**/*.gc*")) @@ -112,11 +115,22 @@ def main(argv): "Note that you need to commit your changes first!")) parser.add_argument("--raise-warnings", default=None, type=str, choices=('develop', 'release'), - help="if 'develop', warnings are treated as errors") + help=("if 'develop', warnings are treated as errors; " + "defaults to 'develop' in development versions.")) parser.add_argument("args", metavar="ARGS", default=[], nargs=REMAINDER, help="Arguments to pass to Nose, Python or shell") args = parser.parse_args(argv) + if args.timer == 0: + timer = False + elif args.timer == -1: + timer = True + elif args.timer > 0: + timer = int(args.timer) + else: + raise ValueError("--timer value should be an integer, -1 or >0") + args.timer = timer + if args.bench_compare: args.bench = True args.no_build = True # ASV does the building @@ -143,6 +157,9 @@ def main(argv): sys.path.insert(0, site_dir) sys.path.insert(0, site_dir_noarch) os.environ['PYTHONPATH'] = site_dir + os.pathsep + site_dir_noarch + else: + _temp = __import__(PROJECT_MODULE) + site_dir = os.path.sep.join(_temp.__file__.split(os.path.sep)[:-2]) extra_argv = args.args[:] if extra_argv and extra_argv[0] == '--': @@ -259,8 +276,7 @@ def main(argv): def fix_test_path(x): # fix up test path p = x.split(':') - p[0] = os.path.relpath(os.path.abspath(p[0]), - test_dir) + p[0] = os.path.join(site_dir, p[0]) return ':'.join(p) tests = [fix_test_path(x) for x in args.tests] @@ -269,7 +285,13 @@ def main(argv): extra_argv = kw.pop('extra_argv', ()) extra_argv = extra_argv + tests[1:] kw['extra_argv'] = extra_argv + import numpy as np from numpy.testing import Tester + if kw["raise_warnings"] is None: + if hasattr(np, "__version__") and ".dev0" in np.__version__: + kw["raise_warnings"] = "develop" + else: + kw["raise_warnings"] = "release" return Tester(tests[0]).test(*a, **kw) else: __import__(PROJECT_MODULE) @@ -293,7 +315,8 @@ def main(argv): extra_argv=extra_argv, doctests=args.doctests, raise_warnings=args.raise_warnings, - coverage=args.coverage) + coverage=args.coverage, + timer=args.timer) finally: os.chdir(cwd) |