2014-02-14 53 views
0

我使用一個Django函數內部運行使用鼻子硒功能測試:如何從硒數據返回到調用函數在python

arg = sys.argv[:1] 
arg.append('--verbosity=2') 
arg.append('-v') 
out = nose.run(module=ft1.testy1, argv=arg, exit=False) 

我創建了使用IDE硒的功能測試。在測試過程中的樣子:

class y1(unittest.TestCase): 
    def setUp(self): 
     self.driver = webdriver.Firefox() 
     self.driver.implicitly_wait(30) 
     self.base_url = "https://www.yahoo.com/" 
     self.verificationErrors = [] 
     self.accept_next_alert = True 

    def test_y1(self): 
     driver = self.driver 
     driver.get(self.base_url) 
     driver.find_element_by_link_text("Weather").click() 
     driver.save_screenshot('out1.png') 
     return " this is a returned value" 

我想返回一個字符串值(「這是一個返回值」)來調用函數。我怎樣才能做到這一點?

回答

1

nose.run()的輸出結果與您的測試方法不符。 unittest.TestCase的默認行爲是拋出異常。如果您想信號的外部代碼的一些具體細節,你總是可以做到這一點通過全局/類變量,文件等

例如,這是如何與一個類變量做(results

ft1_runner.py:

import nose 

import ft1_test 

if __name__ == '__main__': 
    out = nose.run(module=ft1_test, exit=False) 
    print 'Y1.test_y1 test results returned:', ft1_test.Y1.results['test_y1'] 

ft1_test.py:

import unittest 

class Y1(unittest.TestCase): 
    results = {} 

    def test_y1(self): 
     Y1.results['test_y1'] = "this is a returned value" 

我認爲這將有助於如果你能描述你想解決的問題:這似乎有點尷尬和容易出錯(如果測試被稱爲兩次或測試跳過等等)

+0

感謝您查看這Oleksiy。我對python非常陌生,所以我可以詢問更多關於如何執行此操作的細節,讓我們說我想讓調用函數可以使用字符串「this is a returned value」。 – user61629

+0

添加了一個代碼示例,但它可以幫助您查看您嘗試解決的實際問題。 – Oleksiy

+0

謝謝,這有幫助。我假設「結果= {}」將是一個全局變量? – user61629

相關問題