在我的一個功能中,我打電話給一個外部程序,使用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. 如何檢查在php中是否回顯了某些內容?
- 5. 如何檢查是否輸入了一個值使用輸入
- 6. 如何檢查某些數字是否出現在數組中?
- 7. 如何檢查是否使用了matplotlibrc
- 8. 序言 - 如何檢查列表是否包含某些元素?
- 9. 如何檢查用戶是否安裝了應用程序?
- 10. 如何檢查溢出是否發生?
- 11. 是否可以檢查用戶是否粘貼了某些東西?
- 12. 如何檢查用戶輸入是否是某個基地?
- 13. 如何檢查之前是否安裝了iPhone應用程序?
- 14. 如何檢測VBA excel是否發現了某些東西?
- 15. 如何檢查某些使用者是否使用java連接到Kafka 0.9.0.x?
- 16. 如何檢查某人是否正在運行我的程序?
- 17. 檢查輸入字段是否有切換某些類的值
- 18. jquery檢查輸入.val()是否包含某些字符
- 19. 如何使用Facebook C#SDK檢查用戶是否已授予我的應用程序某些權限集?
- 20. 使用Java檢查用戶是否在Android應用程序的兩個EditText框中輸入了一些東西
- 21. 如何檢查是否使用Ant安裝了特定的Django應用程序?
- 22. 檢查網站是否在某些設備上使用
- 23. 如何檢查Safari是否安裝了擴展程序?
- 24. 如何檢查某些字符串是否對Realm非法?
- 25. TypeScript:如何檢查某些值是否爲NaN
- 26. 如何檢查某些字符是否在字符串中?
- 27. Bash:如何檢查某些文件是否存在?
- 28. 如何檢查某些extjs面板是否已加載
- 29. Java - 如何檢查類是否繼承某些類或接口?
- 30. Apple API檢查某個Apple ID是否購買了iOS應用程序
什麼期望輸出? – mouad 2011-06-10 08:33:44
例如:「正在處理文件...」,並且每次處理新文件時都會顯示它。我有一組固定的文件,所以我知道該消息應該出現多少次。 – Geo 2011-06-10 08:54:15