46 lines
974 B
Python
46 lines
974 B
Python
# 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`
|
|
3. Rest of the arguments are passed into the test runner.
|
|
"""
|
|
cwd = sys.argv[1]
|
|
test_runner = sys.argv[2]
|
|
args = sys.argv[3:]
|
|
|
|
return (cwd, test_runner, args)
|
|
|
|
|
|
def run(cwd, test_runner, args):
|
|
"""Runs the test.
|
|
|
|
cwd -- the current directory to be set
|
|
testRunner -- test runner to be used `pytest`
|
|
args -- arguments passed into the test runner
|
|
"""
|
|
sys.path[0] = os.getcwd() # noqa: PTH109
|
|
os.chdir(cwd)
|
|
|
|
try:
|
|
if test_runner == "pytest":
|
|
import pytest
|
|
|
|
pytest.main(args)
|
|
sys.exit(0)
|
|
finally:
|
|
pass
|
|
|
|
|
|
if __name__ == "__main__":
|
|
cwd, test_runner, args = parse_argv()
|
|
run(cwd, test_runner, args)
|