“File not found” using manage.py with pytest-django
我有一个Django项目,其中在
我正在尝试按照https://pytest-django.readthedocs.io/zh-CN/latest/faq.html#how-can-i-use-manage-py-test-with-pytest-django中的说明进行操作,但是 我遇到了意外错误。 我有以下目录结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | . ├── lucy │ ├── settings │ ├── base.py │ ├── development.py │ ├── production.py │ └── staging.py │ ├── staticfiles │ ├── urls.py │ └── wsgi.py ├── lucy_web │ ├── __init__.py │ ├── actions.py │ ├── admin │ ├── apps.py │ ├── fixtures │ ├── forms │ ├── lib │ ├── management │ ├── migrations │ ├── models │ ├── runner.py │ ├── serializers.py │ ├── static │ ├── templates │ ├── templatetags │ ├── tests │ ├── urls.py │ └── views ├── manage.py ├── pytest.ini |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | class PytestTestRunner(object): """Runs pytest to discover and run tests.""" def __init__(self, verbosity=1, failfast=False, keepdb=False, **kwargs): self.verbosity = verbosity self.failfast = failfast self.keepdb = keepdb def run_tests(self, test_labels): """Run pytest and return the exitcode. It translates some of Django's test command option to pytest's. """ import pytest argv = [] if self.verbosity == 0: argv.append('--quiet') if self.verbosity == 2: argv.append('--verbose') if self.verbosity == 3: argv.append('-vv') if self.failfast: argv.append('--exitfirst') if self.keepdb: argv.append('--reuse-db') argv.extend(test_labels) return pytest.main(argv) |
最后,在
1 | TEST_RUNNER = 'lucy_web.runner.PytestTestRunner' |
最后,
1 2 3 4 5 | # -- FILE: pytest.ini (or tox.ini) [pytest] DJANGO_SETTINGS_MODULE = lucy.settings.production # -- recommended but optional: python_files = tests.py test_*.py *_tests.py |
问题是
1 | python manage.py test lucy_web.tests |
我懂了
1 2 3 4 5 6 7 | (venv) Kurts-MacBook-Pro:lucy-web kurtpeek$ python manage.py test lucy_web.tests ============================================ test session starts ============================================ platform darwin -- Python 3.6.4, pytest-3.3.2, py-1.5.2, pluggy-0.6.0 rootdir: /Users/kurtpeek/Documents/Dev/lucy/lucy-web, inifile: pytest.ini ======================================= no tests ran in 0.00 seconds ======================================== ERROR: file not found: lucy_web.tests |
但是,如果我注释掉
1 2 3 4 5 6 7 8 9 | (venv) Kurts-MacBook-Pro:lucy-web kurtpeek$ python manage.py test lucy_web.tests Creating test database for alias 'default'... System check identified no issues (0 silenced). ....E.F................ ---------------------------------------------------------------------- Ran 23 tests in 15.974s FAILED (failures=1, errors=1) Destroying test database for alias 'default'... |
我在这里做错了什么? 我是否需要将
也许是因为
使用pytest时,我遇到了类似的情况。 我在测试目录中删除了
情况略有不同,但我希望这会有所帮助。
links that I got help.
https://docs.pytest.org/en/latest/pythonpath.html
`py.test` and `__init__.py` files