def main(): parser = optparse.OptionParser() parser.add_option('', '--verbose', action='store_true', default=False, help='Whether output should be verbose') parser.add_option('', '--debug', action='store_true', default=False, help='Whether to wait to be attached by a debugger') parser.add_option( '', '--chromedriver', type='string', default=None, help='Path to a build of the chromedriver library(REQUIRED!)') parser.add_option('', '--chrome', type='string', default=None, help='Path to a build of the chrome binary') parser.add_option('', '--log-path', help='Output verbose server logs to this file') parser.add_option('', '--android-package', help='Android package key') parser.add_option( '', '--filter', type='string', default=None, help='Filter for specifying what tests to run, "*" will run all. E.g., ' '*testShouldReturnTitleOfPageIfSet') parser.add_option('', '--also-run-disabled-tests', action='store_true', default=False, help='Include disabled tests while running the tests') parser.add_option('', '--isolate-tests', action='store_true', default=False, help='Relaunch the jar test harness after each test') options, _ = parser.parse_args() options.chromedriver = util.GetAbsolutePathOfUserPath(options.chromedriver) if options.chromedriver is None or not os.path.exists( options.chromedriver): parser.error('chromedriver is required or the given path is invalid.' + 'Please run "%s --help" for help' % __file__) if options.android_package: if options.android_package not in constants.PACKAGE_INFO: parser.error('Invalid --android-package') environment = test_environment.AndroidTestEnvironment( options.android_package) else: environment = test_environment.DesktopTestEnvironment() try: environment.GlobalSetUp() # Run passed tests when filter is not provided. if options.isolate_tests: test_filters = environment.GetPassedJavaTests() else: if options.filter: test_filter = options.filter else: test_filter = '*' if not options.also_run_disabled_tests: if '-' in test_filter: test_filter += ':' else: test_filter += '-' test_filter += ':'.join( environment.GetDisabledJavaTestMatchers()) test_filters = [test_filter] ready_to_run_tests = ':'.join( environment.GetReadyToRunJavaTestMatchers()) java_tests_src_dir = os.path.join(chrome_paths.GetSrc(), 'chrome', 'test', 'chromedriver', 'third_party', 'java_tests') tests_report_file = os.path.join(java_tests_src_dir, 'results.txt') if (not os.path.exists(java_tests_src_dir) or not os.listdir(java_tests_src_dir)): java_tests_url = ('https://chromium.googlesource.com/chromium/deps' '/webdriver') print( '"%s" is empty or it doesn\'t exist. ' % java_tests_src_dir + 'Need to map ' + java_tests_url + ' to ' 'chrome/test/chromedriver/third_party/java_tests in .gclient.\n' 'Alternatively, do:\n' ' $ cd chrome/test/chromedriver/third_party\n' ' $ git clone %s java_tests' % java_tests_url) return 1 _Run(java_tests_src_dir=java_tests_src_dir, test_filter=test_filter, ready_to_run_tests=ready_to_run_tests, chromedriver_path=options.chromedriver, chrome_path=util.GetAbsolutePathOfUserPath(options.chrome), log_path=options.log_path, android_package_key=options.android_package, debug=options.debug, tests_report_file=tests_report_file) return _PrintTestResults(tests_report_file) finally: environment.GlobalTearDown() if (os.path.exists(tests_report_file)): os.remove(tests_report_file) if (os.path.exists( os.path.join(java_tests_src_dir, "chrome-wrapper-no-sandbox"))): os.remove( os.path.join(java_tests_src_dir, "chrome-wrapper-no-sandbox")) if (os.path.exists(os.path.join(java_tests_src_dir, "chrome-wrapper"))): os.remove(os.path.join(java_tests_src_dir, "chrome-wrapper"))
def main(): parser = optparse.OptionParser() parser.add_option('', '--verbose', action='store_true', default=False, help='Whether output should be verbose') parser.add_option('', '--debug', action='store_true', default=False, help='Whether to wait to be attached by a debugger') parser.add_option( '', '--chromedriver', type='string', default=None, help='Path to a build of the chromedriver library(REQUIRED!)') parser.add_option('', '--chrome', type='string', default=None, help='Path to a build of the chrome binary') parser.add_option('', '--log-path', help='Output verbose server logs to this file') parser.add_option('', '--chrome-version', default='HEAD', help='Version of chrome. Default is \'HEAD\'') parser.add_option('', '--android-package', help='Android package key') parser.add_option( '', '--filter', type='string', default=None, help='Filter for specifying what tests to run, "*" will run all. E.g., ' '*testShouldReturnTitleOfPageIfSet') parser.add_option('', '--also-run-disabled-tests', action='store_true', default=False, help='Include disabled tests while running the tests') parser.add_option('', '--isolate-tests', action='store_true', default=False, help='Relaunch the jar test harness after each test') options, _ = parser.parse_args() if options.chromedriver is None or not os.path.exists( options.chromedriver): parser.error('chromedriver is required or the given path is invalid.' + 'Please run "%s --help" for help' % __file__) if options.android_package: if options.android_package not in constants.PACKAGE_INFO: parser.error('Invalid --android-package') if options.chrome_version != 'HEAD': parser.error( 'Android does not support the --chrome-version argument.') environment = test_environment.AndroidTestEnvironment( options.android_package) else: environment = test_environment.DesktopTestEnvironment( options.chrome_version) try: environment.GlobalSetUp() # Run passed tests when filter is not provided. if options.isolate_tests: test_filters = environment.GetPassedJavaTests() else: if options.filter: test_filter = options.filter else: test_filter = '*' if not options.also_run_disabled_tests: if '-' in test_filter: test_filter += ':' else: test_filter += '-' test_filter += ':'.join( environment.GetDisabledJavaTestMatchers()) test_filters = [test_filter] java_tests_src_dir = os.path.join(chrome_paths.GetSrc(), 'chrome', 'test', 'chromedriver', 'third_party', 'java_tests') if (not os.path.exists(java_tests_src_dir) or not os.listdir(java_tests_src_dir)): java_tests_url = ( 'http://src.chromium.org/svn/trunk/deps/third_party' '/webdriver') print( '"%s" is empty or it doesn\'t exist. ' % java_tests_src_dir + 'Need to map <chrome-svn>/trunk/deps/third_party/webdriver to ' 'chrome/test/chromedriver/third_party/java_tests in .gclient.\n' 'Alternatively, do:\n' ' $ cd chrome/test/chromedriver/third_party\n' ' $ svn co %s java_tests' % java_tests_url) return 1 results = [] for filter in test_filters: results += _Run(java_tests_src_dir=java_tests_src_dir, test_filter=filter, chromedriver_path=options.chromedriver, chrome_path=options.chrome, log_path=options.log_path, android_package_key=options.android_package, verbose=options.verbose, debug=options.debug) return PrintTestResults(results) finally: environment.GlobalTearDown()
def main(): parser = optparse.OptionParser() parser.add_option( '', '--verbose', action="store_true", default=False, help='Whether output should be verbose') parser.add_option( '', '--debug', action="store_true", default=False, help='Whether to wait to be attached by a debugger') parser.add_option( '', '--chromedriver', type='string', default=None, help='Path to a build of the chromedriver library(REQUIRED!)') parser.add_option( '', '--chrome', type='string', default=None, help='Path to a build of the chrome binary') parser.add_option( '', '--chrome-version', default='HEAD', help='Version of chrome. Default is \'HEAD\'') parser.add_option( '', '--android-package', type='string', default=None, help='Name of Chrome\'s Android package') parser.add_option( '', '--filter', type='string', default=None, help='Filter for specifying what tests to run, "*" will run all. E.g., ' '*testShouldReturnTitleOfPageIfSet') options, args = parser.parse_args() if options.chromedriver is None or not os.path.exists(options.chromedriver): parser.error('chromedriver is required or the given path is invalid.' + 'Please run "%s --help" for help' % __file__) if options.android_package is not None: if options.chrome_version != 'HEAD': parser.error('Android does not support the --chrome-version argument.') environment = test_environment.AndroidTestEnvironment() else: environment = test_environment.DesktopTestEnvironment( options.chrome_version) try: environment.GlobalSetUp() # Run passed tests when filter is not provided. test_filter = options.filter if test_filter is None: test_filter = environment.GetPassedJavaTestFilter() java_tests_src_dir = os.path.join(chrome_paths.GetSrc(), 'chrome', 'test', 'chromedriver', 'third_party', 'java_tests') if (not os.path.exists(java_tests_src_dir) or not os.listdir(java_tests_src_dir)): print ('"%s" is empty or it doesn\'t exist.' % java_tests_src_dir + 'Should add "deps/third_party/webdriver" to source checkout config') return 1 return PrintTestResults(_Run( java_tests_src_dir=java_tests_src_dir, test_filter=test_filter, chromedriver_path=options.chromedriver, chrome_path=options.chrome, android_package=options.android_package, verbose=options.verbose, debug=options.debug)) finally: environment.GlobalTearDown()