2014-02-05 4 views
0

Так что я использовал сценарий MonkeyRunner из Jenkins для подключения к устройству USB Android и запускал некоторые автоматические тесты, однако сам MonkeyRunner был довольно нестабилен, поэтому я переключился на фантастический AndroidViewClient и портировал мой тестовый скрипт для использования этого чистого API Python.Не удалось подключиться к Android-устройству от Jenkins

Новый скрипт Python отлично работает при вызове независимо от оболочки, однако целью является вызов этого сценария из Jenkins в качестве этапа пост-сборки.

Проблема, с которой я столкнулась, - это первоначальное подключение к устройству USB Android. Скрипт ниже - это фрагмент из фактического тестового сценария - это та часть, которая проверяет наличие USB-устройства и получает его серийный номер перед подключением к устройству Android. Это отлично работает с оболочкой ubuntu, однако не удается подключиться при вызове из командной строки Jenkins.

#! /usr/bin/env python 

# Import Class Files 

import re 
import sys 
import os 
import time 
import commands 
import signal 
import subprocess 
import codecs 

ubuntuHome = os.getenv('HOME') 
sdkRootDefault = ubuntuHome + '/dev_env/ADT/sdk' 
sdkRoot = os.getenv('ANDROID_SDK_ROOT',sdkRootDefault) 
platformTools = sdkRoot + '/platform-tools' 

# Find the attached devices 
adbcmd = platformTools + "/./adb devices |grep -v attached |grep device |head -n 1 | cut -f1" 
p = subprocess.Popen(adbcmd, shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) 
serialnoIn = (p.stdout.readline()).strip() 

# No devices found then exit 
if len(serialnoIn) == 0 or serialnoIn is None: 
    print ("ERROR: No devices found") 
    sys.exit(1) 

print "INFO: Trying Connection to " + serialnoIn + "..." 

С Ubuntu Shell выход:

INFO: Trying Connection to 3a005473...

С Дженкинс 'Выполнить Shell' шаг

ERROR: No devices found

сборки Интересно, когда этот же фрагмент был назван внутри оригинального MonkeyRunner скрипта работал отлично. Итак, я думаю, что MonkeyRunner делает некоторые первоначальные настройки, которые мой скрипт Python не делает? Мне не хватает эксперта Python, который знает, как настроить USB-устройства. Любая помощь приветствуется.

ответ

1

Хорошо, что ответ был прост: он помогает, если jenkins может использовать инструменты sdk и пути AndroidViewClient!

sudo -Rm u:jenkins:rwx

... фик его

Смежные вопросы