Пример #1
0
def run_tests(adb_location, serial_number, package_name, test_runner_name,
              enable_coverage):
    u'''
    Run tests and output result as XML.

    Parameters:
        adb_location : Location of adb.
        serial_number : Serial number of device or emulator. None is OK.
        test_runner_name : Name of test runner. None is OK.
        enable_coverage : Whether coverage measuring is enabled.
    Return:
        ElementTree of result. None if tests did not run.
    '''
    AndroidDebugBridge.init(False)

    connecting_event = DeviceConnectingEvent(serial_number)
    AndroidDebugBridge.addDeviceChangeListener(connecting_event)

    debug_bridge = AndroidDebugBridge.createBridge(adb_location, False)
    connecting_event.wait()

    if not debug_bridge.isConnected():
        print >> sys.stderr, u'bridge is not connected.'
        return None

    device = get_device(serial_number, debug_bridge)

    if not device:
        print >> sys.stderr, u'There is not device.'
        return None

    test_runner = RemoteAndroidTestRunner(package_name, test_runner_name,
                                          device)
    test_runner.setCoverage(enable_coverage)

    formatter = TestResultXmlFormatter(device.getProperties())
    test_runner.run(formatter)

    return formatter.get_result()