Rumah >pembangunan bahagian belakang >Tutorial Python >Menambah arahan pytest pada Django manage.py
Cara pilihan untuk memanggil pytest adalah melalui arahan pytest. Malah apl pytest-django tidak menyediakan arahan pengurusan untuk memanggil pytest.
Tetapi saya lebih suka menggunakan projek django saya melalui satu tempat, iaitu skrip manage.py pada akar projek. Jadi saya hanya menambahnya pada skrip:-
#!/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()
Ini membolehkan kami menjalankan pytest sebagai:-
poetry run python manage.py pytest -s -x ./path/to/tests/test_*.py
Atas ialah kandungan terperinci Menambah arahan pytest pada Django manage.py. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!