2013-09-26 39 views
0

我開始使用Python的鼻子來執行我的功能測試。使用Python的鼻子創建模塊setUp/tearDown方法

我使用它與SauceLab的服務。我從命令行執行測試並查看Sauce儀表板上的報告。

現在,每個測試都是一個包含setUp(),the_test()和tearDown()方法的類。 在setUp()方法內部,有傳遞給配置瀏覽器/版本/操作系統的Sauce的能力,測試將運行。

def setUp(self): 
     #REMOTE 
     desired_capabilities = webdriver.DesiredCapabilities.FIREFOX 
     desired_capabilities['version'] = '21' 
     desired_capabilities['platform'] = 'Windows XP' 
     desired_capabilities['name'] = className.getName(self) 
     desired_capabilities['record-video'] = False 

     self.wd = webdriver.Remote(desired_capabilities=desired_capabilities,command_executor="http://the_username:[email protected]:80/wd/hub") 
     self.wd.implicitly_wait(10) 

我想做到以下幾點...: 創建一個包含安裝和拆卸功能單獨的文件和公正的名字稱呼他們每一次正是我需要他們(測試前和測試/測試後)。 現在它們存在於我擁有的每個python文件中,並且它們是相同的一段代碼。

此外,我認爲有一種方法,鼻子提供自動看到兩個功能,並在需要時調用它們。這可行嗎?

謝謝你提前

回答

1

把他們放在一個超級班。

def MyTestCase(TestCase): 

    def setUp(self): 
     # do setup stuff 

然後,您的每個測試都可以繼承自MyTestCase。然後,您可以在每個測試課程中進一步騎上setUp或tearDown。但要記得調用超類的init方法。

+0

爲什麼在'unittest.TestCase'中對它們進行子類化?鼻子在其自己的庫中包含相同的斷言功能,並符合pep8 – Greg

+0

他可以繼承他喜歡的任何類......我不是規定性的。只要告訴他,在每個測試類上沒有相同的setUp方法的解決方案就是使用繼承。 – aychedee