2016-08-17 49 views
0

我有一些測試用例在單獨的.py文件中,我想在我創建的模塊上測試。所有這些文件都使用我創建的py模塊,所有這些py文件都將打印一個預定義的輸出(一些數字爲幾千行)。Python - 如何檢查多個py文件的打印輸出?

有沒有辦法運行.py腳本來運行這些其他測試.py腳本並檢查輸出?我已經看過doctest和unittests,但這些涉及特定的功能,而不是py腳本?

編輯:這些py文件打印輸出,而不是返回值。其中一些還利用多線程。

+0

如果你想使用多線程爲每個文件創建線程,然後運行這個execfile(「」test.py「,變量),這將運行你的測試腳本,或者你可以做到只有一個線程所有文件存儲在目錄中,讀取帶有* .py文件的目錄,並將其導入列表或帶變量的指令,然後運行它們中的每一個 –

回答

1

試試這個

import glob 
lst = glob.glob("/home/test/*.py") 

for each_file in lst: 
    variables= {} #what ever variables to need run 
    execfile(each_file, variables) 
1

你需要

subprocess.Popen(['python',file_name],universal_newlines=True,stdout=stdout, stderr=stderr)

這些stdout做的是,你會調用這些腳本是什麼,stderr都是文件對象,他們將結果寫成這些文件。然後,您可以使用sleep()以達到您認爲最合適的時間。

然後,您可以打開這些文件並檢查結果。

閱讀更多關於子過程here