2010-11-03 16 views
8

Sto usando PyDev (con Aptana) per scrivere e eseguire il debug di un'app di Python Pylons e mi piacerebbe eseguire i test nel debugger.Debug interattivo con nosetests in PyDev

È possibile avviare i nosetest tramite PyDev e fermarsi ai punti di interruzione?

+0

Vedere la risposta in questa domanda: http: // StackOverflow.it/questions/8191146/pydev-nosetests-test-run – superlee

risposta

0

Provare import pydevd; pydevd.settrace() dove si desidera un punto di interruzione.

2

Ecco cosa faccio per eseguire nosetests utilizzando eclipse Pydev (Spero che questo ti sia di aiuto).

Prima di tutto creare uno script python e ho messo nella radice della mia directory del pacchetto:

--Package 
    | 
    | -- runtest.py 
    | 
    | -- ... (others modules) 

e in runtest.py ho messo:

import nose 
nose.main() 

ora vado a nel menu Esegui -> Esegui configurazioni e creo una nuova configurazione di Pydev Django scelgo il mio pacchetto e inserisco runtest.py nel modulo , dopo vado alla scheda argomenti nello stesso widget e ho messo in argomenti del programma il percorso per il mio progetto e diverso arg da passare al script di esempio:

/home/me/projects/src --with-doctest # Run doctests too 

ora dopo aver cliccato su Apply i può eseguire questa configurazione.

Per il debug è possibile eseguire questa configurazione in modalità debug e mettere il vostro punto di interruzione qualsiasi punto del codice e si può utilizzare il widget formidabile di debug di fare diverse azioni: passo in, per vedere Vars ...

NB : per doctest purtroppo non penso che tu possa mettere breakpoint nella riga di doctest ma quello che puoi fare è mettere il tuo breakpoint nella def della funzione chiamata dal doctest e come quella che puoi usare la modalità di debug.

+0

Quindi questo in realtà non lo integra con un plug-in per principianti - non ottieni i risultati nella visualizzazione plugin, giusto? –

0

Ho ottenuto questo funzionamento, un po '- cioè, non ho punti di interruzione e stepping di lavoro, ma ottengo PyDev per eseguire i test e mostrare i risultati nella vista PyUnit.

Quando si esegue il test dell'unità, è necessario eseguire l'override del test runner per utilizzare "nose" e argomenti della riga di comando "--with-pylons = path/to/test.ini" nella scheda arguments della corsa configurazione. Ad esempio, l'ho impostato su "--with-pylons = ../../test.ini". Purtroppo devo impostarlo separatamente per ogni test eseguito, non ho trovato un modo per inserire una variabile o un percorso di progetto.

Inoltre, sfortunatamente, non sono riuscito a far funzionare i breakpoint. Ho provato le patch come raccomandato in http://pydev.blogspot.ca/2007/06/why-cant-pydev-debugger-work-with.html e i suoi commenti senza alcun risultato. YMMV.

In DecoratorTools-1,8-py2.7.egg/picco/util/decorators.py in decorate_assignment(), sostituire:

oldtrace = [frame.f_trace] 

con

oldtrace = [sys.gettrace()] 
Problemi correlati