Python &引用;“未找到文件”;将manage.py与pytest django一起使用
我有一个Django项目,其中在Python &引用;“未找到文件”;将manage.py与pytest django一起使用,python,django,pytest,pytest-django,Python,Django,Pytest,Pytest Django,我有一个Django项目,其中在manage.py中设置了某些环境变量,这些变量后来用作settings.py中定义的值。因此,为了运行,我想先运行manage.py 我试图按照中的说明操作,但遇到了意外错误。我有以下目录结构: . ├── lucy │ ├── settings │ ├── base.py │ ├── development.py │ ├── production.py │ └── staging.py │ ├── staticf
manage.py
中设置了某些环境变量,这些变量后来用作settings.py
中定义的值。因此,为了运行,我想先运行manage.py
我试图按照中的说明操作,但遇到了意外错误。我有以下目录结构:
.
├── 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
runner.py
的内容完全取自常见问题解答:
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)
最后,在lucy/settings/base.py
中添加以下行:
TEST_RUNNER = 'lucy_web.runner.PytestTestRunner'
最后,pytest.ini
文件如文档中的示例所示:
# -- FILE: pytest.ini (or tox.ini)
[pytest]
DJANGO_SETTINGS_MODULE = lucy.settings.production
# -- recommended but optional:
python_files = tests.py test_*.py *_tests.py
问题是pytest
似乎无法找到测试。如果我运行命令
python manage.py test lucy_web.tests
我明白了
但是,如果我注释掉base.py
中的TEST\u RUNNER
行并运行相同的命令,测试将成功运行:
(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'...
我做错了什么?我是否需要将
runner.py
放在不同的位置?可能是因为\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy
我在使用pytest时也遇到过类似的情况。我删除了tests dir中的\uuuu init\uuuu.py
,它测试得很好
情况有点不同,但我希望这能有所帮助
我得到帮助的链接
(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'...