Sto provando a eseguire il debug di una CLI Python che ho scritto che può prendere i suoi argomenti da stdin. Un semplice caso di test dovrebbe avere l'output diCome eseguire il debug di CLI Python che richiede stdin?
echo "test" | python mytool.py
essere equivalente alla produzione di
python mytool.py test
mi piacerebbe eseguire il debug di alcuni problemi con questo strumento, quindi ho cercato di eseguire questo:
echo "test" | pdb mytool.py
Ma ho questa uscita, uscite poi PDB:
> /path/to/mytool.py(5)<module>()
-> '''
(Pdb) *** NameError: name 'test' is not defined
(Pdb)
La stessa cosa si verifica quando aggiungo -m python
allo shebang e se eseguo pdb.set_trace()
all'interno dello script.
Cosa sta succedendo qui?
È possibile modificare lo script per accettare l'input da un file diverso da stdin? – nmichaels
possibile duplicato di [test dell'unità di programma CLI Python] (http://stackoverflow.com/questions/13493288/python-cli-program-test-testing) –
@ user1901786 Come si accede allo stdin nello script CLI? Usando 'sys.stdin'? Inoltre, vuoi solo scrivere un test per questo o hai bisogno di avviare il debugger all'interno dello script? Se hai bisogno del debugger, a che punto vuoi coinvolgere lo script? Scusa, la domanda mi è un po 'oscura. – famousgarkin