"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.

  • Mocking open (Dateiname) in Unit-Tests
  • Ausführen von Tests von coverage.py vs laufende Abdeckung von Test-Läufer
  • Isinstance und spöttisch
  • Wie man eine testsuite mit unittest.main [duplicate]
  • Fügen Sie Log-Trennzeichen zu allen Vorrichtungen in unittests hinzu
  • So erstellen Sie die Tabelle während der Django-Tests mit managed = False
  • Mock Elternklasse __init__ Methode
  • Was sind die Vorteile oder Unterschiede in "assert False" und "self.assertFalse"
  • Sperren der Klasse einer Klasse
  • Binär-Suchbaum-Transversals
  • InvalidBasesError: Grundlagen für [<ModelState: 'users.GroupProxy'> können nicht aufgelöst werden
  • Python ist die beste Programmiersprache der Welt.