每次講到unittest測試框架的時候,經常有同學在群里反映之拨,為啥我的運行不是按照我往suite里添加的用例順序執(zhí)行的咧叭,為什么別人的能跑出來報告蚀乔,我的就不行...
當然菲茬,首先確認代碼是OK的,如果代碼沒有問題婉弹,那多半就是執(zhí)行方式不太對了,我們分別來看看兩種執(zhí)行方式氯哮。
01
unittest 執(zhí)行方式
這種執(zhí)行方式是pycharm自帶的佩脊,首先看一下下面這段測試代碼:
????import unittest
class TestCase(unittest.TestCase):
? ?def setUp(self):
? ? ? ?print("Before every test case!")
? ?def test_case_01(self):
? ? ? ?print("this is test case 1")
? ?def test_case_02(self):
? ? ? ?print("this is test case 2")
#大家可以認為這是一個類似于
if __name__ == "__main__":
? ?unittest.main()
如果想運行這段代碼,我們可以直接在PyCharm中if __name__ == "__main__": 這一句的下面擊右鍵威彰,然后選擇 run unittest for teststudy
這樣就是調用PyCharm中的unittest插件運行了我們當前這個測試類。
PyCharm中的unittest插件功能很強大舔痕,不僅可以運行整個測試類豹缀,還可以選擇其中某一個測試用例執(zhí)行伯复,比如邢笙,我只想執(zhí)行test_case_01,可以將鼠標移到test_case_01區(qū)域叮雳,然后點擊右鍵想暗,這樣可以實現執(zhí)行單獨一條測試用例帘不。
或者,可以點擊測試用例左邊的小運行圖標储狭,都可以實現執(zhí)行單條測試用例
上面的這些執(zhí)行方式雖然入口不一樣捣郊,但是都是借助PyCharm的unittest插件進行運行,這種執(zhí)行方式的缺點是依賴PyCharm呛牲,以及無法生成報告,如果想生成測試報告,就要考慮Python運行方式僧凤。
02
Python運行方式
Python運行方式可以直接在命令行中調用。
在這里旋膳,要注意,只有添加了這段代碼验懊,才能喚醒神龍尸变,調用起Python運行方式
if __name__ == "__main__":
unittest.main()
這段代碼可以理解為是一個主函數,當前這個Python文件的入口召烂。
當然除了在命令行,我們也可以在PyCharm中添加運行方式奏夫,選擇Edit Configurations
點開之后,發(fā)現里面已經有了一些運行方式廊谓,通過名稱可以看出來麻削,這些都是unittest的運行方式蒸痹。
那Python的運行方式如何添加呢电抚,我們可以點擊左上角的+號惕稻,選擇Python
然后將我們添加的這個文件添加到script path 中
接著俺祠,我們就能在右上角看到我們剛剛添加的運行方式借帘,直接選擇這個運行按鈕蜘渣,就可以用Python的運行方式去運行了
如果后面要添加報告應用或者用testsuite組織用例順序蔫缸,只要在if __name__ == "__main__": 代碼后面添加,然后直接用Python方式運行就可以了拾碌。
例如:
Python運行方式不依賴于PyCharm街望,不需要PyCharm啟動就可以調用校翔,便于以后直接在CMD下調用或者添加到Jenkins中灾前。
最后,希望本文可以幫助大家蔫敲。
作 者:Testfan??Chris
出 處:微信公眾號:自動化軟件測試平臺
版權說明:歡迎轉載,但必須注明出處奈嘿,并在文章頁面明顯位置給出文章鏈接