在我的一個功能中,我打電話給一個外部程序,使用subprocess.check_call
,這將產生輸出。我怎麼能使用doctest來確保它生成的輸出是我期望的輸出?如何使用doctest檢查程序是否產生了某些輸出?
1
A
回答
1
也許這可以幫助:
import sys
import tempfile
import subprocess
def example(output):
r""" Do something ...
>>> output = example('Processing file ...')
>>> print output # doctest:+ELLIPSIS
'Processing file ...'
Check how many file was processed.
>>> [line.startswith('Processing file')
... for line in output.splitlines()].count(True)
1
"""
cmd = "print '%s'" % (output,)
with tempfile.TemporaryFile() as output:
subprocess.check_call([sys.executable, '-c', cmd], stdout=output)
output.seek(0)
res = output.read()
return res
if __name__ == '__main__':
import doctest
doctest.testmod()
正如你可以看到我,如果你不使用stdout
使用的subprocess.check_call
函數的自變量stdout
所以能夠得到命令的輸出,即旁參數(我認爲這是你的情況)我認爲很難捕獲命令輸出。
希望這是充滿希望:)
相關問題
- 1. 檢查命令是否產生輸出
- 2. 檢查在Informix 4GL程序更新後是否發生了某些事情
- 3. 如何檢查用戶是否在JDialogBox中輸入了某些內容?
- 4. 如何檢查用戶是否輸入了某個詞
- 5. 如何檢查在php中是否回顯了某些內容?
- 6. didFinishLaunchingWithOptions是否在某些應用程序「退出」後發生?
- 7. 檢查是否安裝了某些應用程序並獲取它的版本
- 8. objective-c檢查是否忘記了某個/某些版本
- 9. 如何檢查是否輸入了一個值使用輸入
- 10. 如何檢查某些數字是否出現在數組中?
- 11. 如何檢查是否給出了輸出綁定?
- 12. 如何檢查是否使用了matplotlibrc
- 13. 序言 - 如何檢查列表是否包含某些元素?
- 14. 我們做了一些檢查後,是否可以退出iOS應用程序
- 15. 如何檢查用戶是否安裝了應用程序?
- 16. 如何檢查溢出是否發生?
- 17. 哪些操作產生排序輸出?
- 18. 是否可以檢查用戶是否粘貼了某些東西?
- 19. 如何檢查用戶輸入是否是某個基地?
- 20. 如何我可以檢查是否安裝了應用程序
- 21. 如何檢查之前是否安裝了iPhone應用程序?
- 22. 如何檢查某些東西是否支持通用接口?
- 23. 如何檢查用戶是否有某些表中的數據
- 24. 如何檢測AppleScript是否選擇了某些內容?
- 25. 如何檢測VBA excel是否發現了某些東西?
- 26. Maven檢查是否編譯了某些東西
- 27. 如何檢查輸入的出生日期是否有效
- 28. 如何檢查某些使用者是否使用java連接到Kafka 0.9.0.x?
- 29. 檢查某些文本是否僅包含某些模式
- 30. 如何檢查某人是否正在運行我的程序?
什麼期望輸出? – mouad 2011-06-10 08:33:44
例如:「正在處理文件...」,並且每次處理新文件時都會顯示它。我有一組固定的文件,所以我知道該消息應該出現多少次。 – Geo 2011-06-10 08:54:15