"Leere Test-Suite" durch Django-Tests mit Pycharm (Tests werden gefunden, wenn aus der Shell gestartet)

Ich habe eine harte Zeit, meine Django- Tests mit PyCharm zu betreiben. Ich habe es in der Vergangenheit leicht gemacht, indem ich eine "Python-laufende Konfiguration" verwende, in der ich manage.py , um sie auszuführen, ich war auf OSX und mit python 2.7, Django <= 1.7, Pycharm <= 4. Jetzt bin ich auf Linux Minze, ich benutze Python 3.4.3, Django 1.8.2 und Pycharm 4.5. Ich habe immer virtualenv benutzt, um meine Projekte zu verwalten. Jetzt, indem du "manage.py test" von Pycharm laufst, gibt es keine Tests (es druckt "Empty test suite"). Aber Tests existieren, und wenn ich den Befehl aus der Shell ausführen, werden sie ausgeführt. Also verstehe ich wirklich nicht was los ist Ich bin eigentlich in der Lage, Tests mit "einem Hack", den ich erstellt habe, zu starten, aber das Problem ist, dass Pycharm nicht in der Lage ist, an den Prozess anzubringen, um Breakpoints in Tests zuzulassen (was eine der Features ist, die ich am meisten benutze!) . Mein "Hack" ist folgendes:

Ich habe ein Python-Skript erstellt mit:

 import subprocess def main(): subprocess.call('./venv_activator.sh', shell=True) if __name__ == '__main__': main() 

Dann ein Bash-Skript ( venv_activator.sh ):

 #!/usr/bin/env bash source .ENV/bin/activate python manage.py test myapp -p "*_tests.py" --noinput -v 2 --settings=settings.test 

In der Praxis wird das Python-Skript verwendet, um eine "python running configuration" für Pycharm zu erstellen, dann aktiviert es das virtualenv und ruft den django test Befehl auf.

Ps: ja, ich habe "Django-Unterstützung" in PyCharm eingeschaltet (und ich habe den Python-Interpreter unter dem virtualenv konfiguriert)

2 Solutions collect form web for “"Leere Test-Suite" durch Django-Tests mit Pycharm (Tests werden gefunden, wenn aus der Shell gestartet)”

Das Problem ist, dass PyCharm das angegebene Suchmuster für Testdateien nicht anwendet (-p "* _tests.py"). Es ist ein Fehler, der bereits berichtet wurde: https://youtrack.jetbrains.com/issue/PY-15869

Die Lösung war, um meine Dateien einfach umzubenennen: P

Mit pycharm können Sie Ihre Tests direkt durch die Erstellung einer Testkonfiguration ausführen. Erstellen Sie eine Konfiguration mit Run> Edit Configuration. Füge eine config aus Django-Tests hinzu, setze den virtuellen env-Pfad, das Arbeitsverzeichnis (Pfad zu manage.py), Zielmodul (wie complete_project oder ein complete_project.app_name). Führen Sie die Konfiguration aus, es führt die Tests aus dem Test.py aus dem entsprechenden Modul.

  • Wie kann ich Test Django Views?
  • Isinstance und spöttisch
  • Mocking urllib2.urlopen () lesen () für verschiedene Antworten
  • So testen Sie Google Cloud Endpunkte
  • Sperren der Klasse einer Klasse
  • Testen eines Funktionsaufrufs innerhalb der Funktion mit python unittest Framework
  • Fehlende Tabelle beim Ausführen von Django Unittest mit Sqlite3
  • Python unittest: wie man nur einen Teil einer Testdatei ausführt?
  • Einen bestimmten Testfall in Django ausführen, wenn deine App ein Testverzeichnis hat
  • Python unerträglich und Testentdeckung
  • Commit in git nur, wenn Tests passieren
  • Python ist die beste Programmiersprache der Welt.