Django 完全忽略异步测试(Django 通道)
Django Ignoring Asynch Tests Completely (Django Channels)
我正在使用 Web 服务器 运行ning Python3.6、Django 2.0 和 Channels 2.0.2。我想构建一些测试以确保我的 websocket 消费者行为正常,不幸的是,每当我 运行 测试时,它们都会被完全忽略。
我一直在关注 official Channels documentation on testing, and I copied the code Channels uses to test its generic consumers 但每当我 运行 测试时,测试 运行ner 只是报告它 运行 没有测试:
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Destroying test database for alias 'default'...
我没有收到任何错误或其他警告。我仔细检查了我是否安装了 pytest-asyncio
和 pytest-django
,并且我 100% 确定文件本身正在通过在顶部放置打印语句来加载。我所有其他测试 运行 正常。非常感谢任何帮助。
默认的 Django 测试 运行ner 没有实现与 asyncio 一起工作,并且不会正确地自动发现用 @pytest.mark.asyncio
.
修饰的测试函数
The FAQ does a decent job of outlining the reasons tests wont be found 但这是我为了解决这个问题所做的。
安装库 pytest
、pytest-django
和 pytest-asyncio
。
pipenv install pytest pytest-django pytest-asyncio
在项目的根目录下创建一个包含以下内容的文件 pytest.ini
,并将 projectname.settings
替换为项目设置文件的正确名称。
[pytest]
DJANGO_SETTINGS_MODULE = projectname.settings
python_files = tests.py test_*.py *_tests.py
然后我能够 运行 使用 pytest
进行测试,如 https://channels.readthedocs.io/en/latest/topics/testing.html
中所述
如果还是不行,请检查一下:https://pytest-django.readthedocs.io/en/latest/faq.html#faq-tests-not-being-picked-up
我正在使用 Web 服务器 运行ning Python3.6、Django 2.0 和 Channels 2.0.2。我想构建一些测试以确保我的 websocket 消费者行为正常,不幸的是,每当我 运行 测试时,它们都会被完全忽略。
我一直在关注 official Channels documentation on testing, and I copied the code Channels uses to test its generic consumers 但每当我 运行 测试时,测试 运行ner 只是报告它 运行 没有测试:
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Destroying test database for alias 'default'...
我没有收到任何错误或其他警告。我仔细检查了我是否安装了 pytest-asyncio
和 pytest-django
,并且我 100% 确定文件本身正在通过在顶部放置打印语句来加载。我所有其他测试 运行 正常。非常感谢任何帮助。
默认的 Django 测试 运行ner 没有实现与 asyncio 一起工作,并且不会正确地自动发现用 @pytest.mark.asyncio
.
The FAQ does a decent job of outlining the reasons tests wont be found 但这是我为了解决这个问题所做的。
安装库 pytest
、pytest-django
和 pytest-asyncio
。
pipenv install pytest pytest-django pytest-asyncio
在项目的根目录下创建一个包含以下内容的文件 pytest.ini
,并将 projectname.settings
替换为项目设置文件的正确名称。
[pytest]
DJANGO_SETTINGS_MODULE = projectname.settings
python_files = tests.py test_*.py *_tests.py
然后我能够 运行 使用 pytest
进行测试,如 https://channels.readthedocs.io/en/latest/topics/testing.html
如果还是不行,请检查一下:https://pytest-django.readthedocs.io/en/latest/faq.html#faq-tests-not-being-picked-up