| #!/usr/bin/env python3 |
| # pylint: disable=C0301,C0103,C0111 |
| |
| from __future__ import print_function |
| |
| import os |
| import sys |
| |
| # Look for requirements.txt |
| name = "requirements.txt" |
| requirements = name |
| path = os.path.dirname(os.path.realpath(__file__)) |
| requirements = os.path.join(path, requirements) |
| |
| try: |
| import nunit_tests_provider |
| import robot_tests_provider |
| import tests_engine |
| from robot import __version__ as robot_version |
| |
| # Check if current robot version matches the one from requirements file |
| def check_robot_version(): |
| required_version = "" |
| with open(requirements, 'r') as req_file: |
| for line in req_file.readlines(): |
| if line.find("robotframework==") != -1: |
| split_line = line.split("==") |
| if len(split_line) > 1: |
| required_version = split_line[1].strip() |
| break |
| |
| if robot_version != required_version: |
| print(f"Required `robotframework` version is `{required_version}`, while the one available in your system is `{robot_version}`. " + \ |
| "Tests may still work, but this version of Robot is not officially supported. " + \ |
| f"Please install the required version using `pip install robotframework=={required_version}` before running the tests") |
| |
| if __name__ == '__main__': |
| check_robot_version() |
| |
| tests_engine.register_handler('nunit', 'csproj', nunit_tests_provider.NUnitTestSuite, nunit_tests_provider.install_cli_arguments) |
| tests_engine.register_handler('robot', 'robot', robot_tests_provider.RobotTestSuite, robot_tests_provider.install_cli_arguments, robot_tests_provider.verify_cli_arguments) |
| tests_engine.run() |
| |
| except ImportError as e: |
| print("{}\nPlease install required dependencies with `pip install -r {}`".format(str(e), os.path.abspath(requirements)), file=sys.stderr) |
| sys.exit(1) |