MonkeyRunner中應用unittest

在用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,會導致異常。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章