Ich bin mit PyDev (mit Aptana) zu schreiben und eine Python Pylons app zu debuggen, und ich möchte Schritt durch die Tests im Debugger.
Ist es möglich, nosetests durch PyDev zu starten und an Haltepunkten zu stoppen?
Ich bin mit PyDev (mit Aptana) zu schreiben und eine Python Pylons app zu debuggen, und ich möchte Schritt durch die Tests im Debugger.
Ist es möglich, nosetests durch PyDev zu starten und an Haltepunkten zu stoppen?
Hier ist, was ich tun, um nosetests mit Eclipse Pydev laufen (Hoffe, dies wird Ihnen helfen).
Als erstes erstelle ich ein Python-Skript und lege es in den Root meines Paketverzeichnisses:
--Package
|
| -- runtest.py
|
| -- ... (others modules)
und in runtest.py habe ich:
import nose
nose.main()
Jetzt gehe ich im Menü auf Ausführen -> Konfigurationen ausführen und ich erstelle eine neue Konfiguration von Pydev Django Ich wähle mein Paket und lege runtest.py in das Hauptmodul Als nächstes gehe ich auf die Registerkarte "Argumente" im selben Widget und gebe ein Programm-Argumente den Pfad zu meinem Projekt und verschiedene Argumente, die an das Skript-Beispiel übergeben werden:
/home/me/projects/src --with-doctest # Run doctests too
jetzt nach einem Klick auf Bewerbung Ich kann diese Konfiguration ausführen.
Zum Debuggen können Sie diese Konfiguration im Debug-Modus laufen lassen und Ihren Haltepunkt irgendwo in Ihrem Code setzen und Sie können das tolle Debug-Widget verwenden, um verschiedene Aktionen auszuführen: step into, um vars zu sehen ...
N.B: für Doctests leider glaube ich nicht, dass Sie Haltepunkt in der Zeile des Doctest setzen können, aber was Sie tun können, ist, Ihre Haltepunkt in der def der Funktion, die durch den Doctest aufgerufen wird und wie, dass Sie den Debug-Modus verwenden können.
Ich habe dies funktioniert, etwas - das heißt, ich habe keine Haltepunkte und Stepping arbeiten, aber ich bekomme PyDev, um die Tests ausführen und zeigen die Ergebnisse in der PyUnit Ansicht.
Wenn Sie den Unit-Test ausführen, müssen Sie den Test-Runner überschreiben, damit er "nose" und die Kommandozeilenargumente "--with-pylons=path/to/test.ini" in der Registerkarte arguments der Run-Konfiguration verwendet. Ich setze es zum Beispiel auf "--with-pylons=../../test.ini". Leider muss ich diese Einstellung für jeden Test, den ich ausführe, einzeln vornehmen, da ich keine Möglichkeit gefunden habe, dort eine Variable oder einen Projektpfad einzufügen.
Außerdem habe ich es leider nicht geschafft, Haltepunkte zu aktivieren. Ich habe Parcheando ausprobiert, wie empfohlen in http://pydev.blogspot.ca/2007/06/why-cant-pydev-debugger-work-with.html und seine Kommentare - ohne Erfolg. YMMV.
In DecoratorTools-1.8-py2.7.egg/peak/util/decorators.py in decorate_assignment(), replace:
oldtrace = [frame.f_trace]
mit
oldtrace = [sys.gettrace()]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.