Wie führen Sie alle tests mit python manage.py test-Befehl in django
Arbeite ich an einem django-Projekt, in dem ich mehrere apps. Jede app hat tests-Verzeichnis die test für das gesamte Projekt. Meine Verzeichnisstruktur ist wie folgt.
Project
App_1
tests
__init__.py
tests_views.py
App_2
tests
__init__.py
tests_views.py
settings.py
manage.py
Ich kann tests ausführen, wie diese
python manage.py test-App_1.tests
laufen alle tests in App_1/tests/test_views.py. Aber ich habe, dies zu tun für alle app-in meinem Projekt. Ich will einen einzigen Befehl die Ausführung aller tests in allen apps in meinem Projekt. Ich habe versucht, durch laufen
python manage.py test
aber ich bekam folgenden Fehler
Traceback (most recent call last):
File "manage.py", line 9, in <module>
execute_from_command_line(sys.argv)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv
super(Command, self).run_from_argv(argv)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute
super(Command, self).execute(*args, **options)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle
failures = test_runner.run_tests(test_labels)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/test/runner.py", line 209, in run_tests
suite = self.build_suite(test_labels, extra_tests)
File "/srv/www/project/shared/env/local/lib/python2.7/site-packages/django/test/runner.py", line 150, in build_suite
tests = self.test_loader.discover(start_dir=label, **kwargs)
File "/usr/lib/python2.7/unittest/loader.py", line 204, in discover
tests = list(self._find_tests(start_dir, pattern))
File "/usr/lib/python2.7/unittest/loader.py", line 285, in _find_tests
for test in self._find_tests(full_path, pattern):
File "/usr/lib/python2.7/unittest/loader.py", line 265, in _find_tests
raise ImportError(msg % (mod_name, module_dir, expected_dir))
ImportError: 'tests' module incorrectly imported from '/vagrant/code/project/App_1/tests'. Expected '/vagrant/code/project/App_1'. Is this module globally installed?
Kann irgend jemand sagt mir, wie kann ich alle tests in meiner app mit einem einzigen Befehl?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Läuft
python manage.py test
ist der richtige Weg, um ausführen alle tests, die in Ihren Projekten auf einmal, Ihre Fehler durch etwas anderes verursacht.Ist es ein problem mit der Ordner-Struktur Ihres tests? Die Verwendung der Standard-unittest-Funktionalität, die Sie sollten wie folgt gespeichert:
Ich denke, dass Ihr problem verursacht wird, weil Sie möglicherweise ein
tests
Ordner innerhalb Ihrertests
Ordner, das ist verwirrend unittest. Auch stellen Sie sicher, Sie haben__init__.py
in Ihrem Ordner python so sehen die Dateien im inneren. Haben Sie einen Blick hier für die Django-Tests-Dokumentation.tests.py
Datei in meinem app-Verzeichnis, die verursacht diesen Fehler. Jetzt ist es Arbeit.