MonkeyRunner中应用unittest

来源:互联网 发布:windows进程间通信 编辑:程序博客网 时间:2024/04/28 22:44

在用monkeyrunner写测试case的时候,逐渐感觉到,测试的case也有碎片话的问题,经常是一个一个的写case,同样也是一个一个的执行,执行的效率其实并不高。在写过的测试脚本形成一定的规模后,将这些脚本有组织的串联在一起,可以自由的组合,打散,这样实用性才会提高。当然这些可以通过做测试框架来解决,但是不是所有的公司都有那么多的人力取开发测试工具的,利用现有的成熟的方案回事多数开发者的第一选择。

对于熟悉unittest的同学们来说,其丰富接口和稳定性,易用性无疑是最好的选择。这里写一下我的认识,权当抛砖引玉吧

MonkeyRunner是基于Jython实现的,其版本是2.6.2,很幸运unittest是默认集成在其中的。那么剩下的事情就很简单了,


#coding=utf-8
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

class CameraStressTest(unittest.TestCase):
    def setUp(self):
        pass

    def test_takepic(self):

        ........

    def tearDown(self):

        pass

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


这个就是一个最基本的测试例子了。unittest支持多种执行的方式,可以执行单独的methmod,也可以执行整个class,也可以创建一个suit,由用户执行选择特定的case脚如到suit中。

如果想用好unittest,一定要掌握官方文档上的说明:http://docs.python.org/library/unittest.html,或者参考一下其他关于python unittest的相关文章,对monkeyrunner中unittest的使用也是有效的。

遇到问题:如果执行的脚本需要在命令行中传递参数,那么一定要在调用unittest.main()之前将这个参数保存下来,并且将其从sys.argv中移除,因为unittest.main也会检查sys.argv,会导致异常。