试图让monkeyrunner包含一个外部.py文件

时间:2012-10-20 00:03:23

标签: android python jython monkeyrunner

我正在尝试让monkeyrunner接受外部.py文件。 .py文件中只有一些函数,没什么特别的。

mainscript.py:

import unittest

import logging
import sys
sys.path.append("C:\path\to\helperscripts\")
from monkeyHelper import monkeyHelper


#log to STDERR
logging.basicConfig(level=logging.DEBUG)

class TestDepthOneFunctions(unittest.TestCase):  

def setUp(self):
    mh = monkeyHelper()
    self.device = mh.setupDevice()
    #monkeyHelper.setupDevice()


def test_myMusic(self):
    self.assertEqual(self.device,3)

def tearDown(self):
    pass

if __name__ == '__main__':
    unittest.main()

monkeyHelper.py:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import logging
import sys


class monkeyHelper(object):

    def __init__(self):
        return

    def setupDevice(self):
        return 3

我试过跑步     #> monkeyrunner.bat mainscript.py 它不起作用。我已经看到了monkeyrunner.bat推出的完整命令行 - 有没有办法将C:\ path \添加到\ helperScripts到该命令行?这就是monkeyrunner.bat吐出来的:

C:\Windows\system32\java.exe -Xmx512m -Djava.ext.dirs=lib\;lib\x86_64 -Dcom.android.monkeyrunner.bindir=..\framework -jar lib\monkeyrunner.jar mainscript.py

我得到的错误是:

import monkeyHelper
ImportError: No module named monkeyHelper

我一整天都在反对这一点 - 任何帮助都表示赞赏!

2 个答案:

答案 0 :(得分:2)

由于您无法在字符串中随意添加\,请尝试:

sys.path.append(r"C:\path\to\helperscripts")

r表示该字符串将被视为原始字符串,这意味着将忽略所有转义码。

还要确保helperMonkey.py在该路径中,

答案 1 :(得分:0)

如果你使用monkeyrunner 你可以在

下添加一个文件夹'lib'
C:\Documents and Settings\<user name>\Local Settings\Application Data\Android\android-sdk\tools\lib'

然后将你的py文件放在

C:\Documents and Settings\<user name>\Local Settings\Application Data\Android\android-sdk\tools\lib\lib

如果您的文件名为myPyFile.py

from myPyFile import *

更新: 小心如果要更新Android SDK工具,请先备份文件,上次更新时,我的lib文件被删除。