2016-04-06 90 views
0

以下代碼導致日誌文件根據測試是否通過而打印到不同的文件夾。我有一個測試用例,只有一個測試目的。在測試運行期間,它執行chdir()。python unittest測試失敗時在不同文件夾中創建的xml文件

如果測試結果失敗(斷言*失敗),則將xml文件寫入測試的當前目錄。如果測試結果爲通過,則將xml文件寫入開始文件夾。查看代碼片段瞭解我如何指定日誌文件文件夾。除了使用完整的路徑,有沒有辦法讓python unittest總是把它寫入開始文件夾?

logFolderName = "TestMyStuff_detail-" +str(scriptPid) 
unittest.main(testRunner=xmlrunner.XMLTestRunner(output=logFolderName), 
       failfast=False) 

回答

0

除了使用完整路徑,是有辦法使Python單元測試總是把它寫入啓動文件夾?

令人懷疑,因爲相對路徑總是相對於當前工作目錄。如果你的測試改變了當前的工作目錄,那你倒黴了。

隨着中說,它不應該是太難用了一個完整的路徑:

import os 
cwd = os.getcwd() 
localLogFolderName = "TestMyStuff_detail-" +str(scriptPid) 
logFolderName = os.path.abspath(os.path.join(cwd, localLogFolderName)) 
+0

謝謝。看起來奇怪的是,xml文件的位置是由cwd在失敗時確定的,而不是在測試目的結束時使用cwd,這對於通過cd的測試目的也是如此。 – cspiral

0

你可以使用一個固定的路徑來寫你的輸出。 類似於

path_to_my_output_folder="/path/to/output/" 

test1_write_xml(path_to_my_output_folder+"file1.xml") 
test2_write_xml(path_to_my_output_folder+"file2.xml") 
test3_write_xml(path_to_my_output_folder+"file3.xml")