我試圖調試一個Python CLI,我寫了可以從stdin取其參數。一個簡單的測試用例將有如何調試採用stdin的python CLI?
輸出echo "test" | python mytool.py
是相當於
python mytool.py test
輸出我想調試的一些問題有了這個工具,所以我試圖運行這個命令:
echo "test" | pdb mytool.py
,但我得到這個輸出,然後退出PDB:
> /path/to/mytool.py(5)<module>()
-> '''
(Pdb) *** NameError: name 'test' is not defined
(Pdb)
當我將-m python
添加到shebang,並且如果我在腳本內部運行pdb.set_trace()
時,會發生同樣的情況。
這是怎麼回事嗎?
你可以改變你的腳本接受來自stdin以外的文件的輸入嗎? – nmichaels
[Python CLI程序單元測試]的可能重複(http://stackoverflow.com/questions/13493288/python-cli-program-unit-testing) –
@ user1901786如何訪問CLI腳本中的stdin?使用'sys.stdin'?另外,你只是想爲此寫一個測試,還是需要在腳本中啓動調試器?如果您需要調試器,那麼您希望它參與腳本?對不起,這個問題對我來說有點不清楚。 – famousgarkin