Hinzufügen des Pytest-Befehls zu Django manage.py

Barbara Streisand
Freigeben: 2024-11-01 14:55:29
Original
707 Leute haben es durchsucht

Adding pytest command to Django manage.py

Der bevorzugte Weg, pytest aufzurufen, ist der Befehl pytest. Selbst die App pytest-django bietet keinen Verwaltungsbefehl zum Aufrufen von pytest.

Aber ich bevorzuge es, mein Django-Projekt über eine einzige Stelle aufzurufen, nämlich das manage.py-Skript im Projektstammverzeichnis. Also füge ich es einfach dem Skript hinzu:-

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
import pathlib
import subprocess

def main():
    BASE_DIR = pathlib.Path(__file__).parent.absolute()
    sys.path[0] = str(BASE_DIR / "src")

    """Run administrative tasks."""
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "medan.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc

    # wrap pytest command here so we don't have to manage
    # PYTHONPATH in multiple places. django-pytest unfortunately
    # doesn't provide native management commands so we still need
    # to invoke pytest directly
    if len(sys.argv) > 1 and sys.argv[1] == "pytest":
        pytest_args = " ".join(sys.argv[2:])
        os.environ["PYTHONPATH"] = sys.path[0]
        subprocess.run(f".venv/bin/pytest {pytest_args}", shell=True, env=os.environ)
    else:
        execute_from_command_line(sys.argv)


if __name__ == "__main__":
    main()
Nach dem Login kopieren

Dadurch können wir Pytest ausführen als:-

poetry run python manage.py pytest -s -x ./path/to/tests/test_*.py
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonHinzufügen des Pytest-Befehls zu Django manage.py. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage