|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # Copyright (c) Microsoft Corporation. All rights reserved.
- # Licensed under the MIT License.
-
- import os
- import sys
-
-
- def parse_argv():
- """Parses arguments for use with the test launcher.
- Arguments are:
- 1. Working directory.
- 2. Test runner, `pytest` or `nose`
- 3. Rest of the arguments are passed into the test runner.
- """
-
- return (sys.argv[1], sys.argv[2], sys.argv[3:])
-
-
- def exclude_current_file_from_debugger():
- # Load the debugger package
- try:
- import ptvsd
- import ptvsd.debugger as vspd
- vspd.DONT_DEBUG.append(os.path.normcase(__file__))
- except:
- traceback.print_exc()
- print('''
- Internal error detected. Please copy the above traceback and report at
- https://github.com/Microsoft/vscode-python/issues/new
-
- Press Enter to close. . .''')
- try:
- raw_input()
- except NameError:
- input()
- sys.exit(1)
-
-
- def run(cwd, testRunner, args):
- """Runs the test
- cwd -- the current directory to be set
- testRunner -- test runner to be used `pytest` or `nose`
- args -- arguments passed into the test runner
- """
-
- sys.path[0] = os.getcwd()
- os.chdir(cwd)
-
- try:
- if testRunner == 'pytest':
- import pytest
- pytest.main(args)
- else:
- import nose
- nose.run(argv=args)
- sys.exit(0)
- finally:
- pass
-
-
- if __name__ == '__main__':
- exclude_current_file_from_debugger()
- cwd, testRunner, args = parse_argv()
- run(cwd, testRunner, args)
|