Heim  >  Artikel  >  Backend-Entwicklung  >  Hinzufügen des Pytest-Befehls zu Django manage.py

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 14:55:29630Durchsuche

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()

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

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

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!

Stellungnahme:
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