def setUpClass(cls, platform='mobile'): if not hasattr(builtins, 'threadlocal'): builtins.threadlocal = threading.local() #Use Default Driver or display device selector if HotDogBaseTest.SKIP_SELECTOR == 'True': builtins.threadlocal.config = HotDogBaseTest.DEFAULT_CONFIG else: builtins.threadlocal.config = DeviceSelector(platform=platform).getDevice()[0] # If testing mobile apps, append app info into desired caps if 'platformName' in builtins.threadlocal.config['desiredCaps']: if builtins.threadlocal.config['desiredCaps']['platformName'].upper() == 'ANDROID': builtins.threadlocal.config['desiredCaps']['app'] = GetConfig('ANDROID_APP_URL') else: builtins.threadlocal.config['desiredCaps']['app'] = GetConfig('IOS_APP_URL') # Instantiate Driver desired_caps = builtins.threadlocal.config['desiredCaps'] provider = builtins.threadlocal.config['options']['provider'] try: builtins.threadlocal.driver = cls.select_driver(cls, desired_caps, provider) except: print(sys.exc_info()[1]) raise unittest.SkipTest('Could not launch driver')
def get_tests(): tests_to_run = [] result = [] failed_tests = json.loads(r.content.decode("utf-8") ) for device in DeviceSelector(True, platform='desktop').getDevice(): for t in failed_tests: if t[1] == device['options']['deviceName'].replace('.',''): tests_to_run.append(t[0]) builtins.threadlocal = threading.local() loader = unittest.TestLoader() tests = loader.discover('./Tests', pattern='*Tests.py') runner = unittest.TextTestRunner() tcs = [y for x in[y for x in test_name(tests) for y in x] for y in x] for tc in tcs: if tc._testMethodName in tests_to_run: t = threading.Thread(target=run_all_test, args=[device, tc]) threads.append(t) t.start()
os.environ['PROJECTFOLDER'] = get_full_path('') from appium_selector.DeviceSelector import DeviceSelector MustardURL = GetConfig('MUSTARD_URL').replace('results', 'executions') + '/close' MustardKey = GetConfig('MUSTARD_KEY') # r = requests.post(MustardURL, data={'project_key': MustardKey,}) os.environ['AddMustard'] = 'True' builtins.threadlocal = threading.local() def run_all_test(device=None): builtins.threadlocal.config = device builtins.threadlocal.driver = None builtins.threadlocal.keepSession = False loader = unittest.TestLoader() tests = loader.discover('./Tests/', pattern='*Tests.py') runner = unittest.TextTestRunner() runner.run(tests) threads = [] for device in DeviceSelector(True, platform='desktop').getDevice(): t = threading.Thread(target=run_all_test, args=[device]) threads.append(t) t.start()
import unittest import threading import builtins os.environ['PROJECTFOLDER'] = get_full_path('') from appium_selector.DeviceSelector import DeviceSelector os.environ['AddMustard'] = 'True' builtins.threadlocal = threading.local() def run_all_test(device=None): builtins.threadlocal.config = device loader = unittest.TestLoader() tests = loader.discover('./Tests', pattern='*Tests.py') runner = unittest.TextTestRunner() runner.run(tests) threads = [] devices = DeviceSelector(True, platform='').getDevice() for device in devices: #t = threading.Thread(target=run_all_test, args=[device]) #threads.append(t) print(str(device)) #t.start() print(len(devices))
import unittest import threading import builtins os.environ['PROJECTFOLDER'] = get_full_path('') from appium_selector.DeviceSelector import DeviceSelector os.environ['AddMustard'] = 'True' builtins.threadlocal = threading.local() def run_all_test(device=None): builtins.threadlocal.config = device builtins.threadlocal.driver = None builtins.threadlocal.keepSession = False loader = unittest.TestLoader() tests = loader.discover('./Tests', pattern='*Tests.py') runner = unittest.TextTestRunner() runner.run(tests) threads = [] for device in DeviceSelector(True, platform='desktop').getDevice(filter='.*Sauce.*'): t = threading.Thread(target=run_all_test, args=[device]) threads.append(t) t.start()