我正在开发一个运行Python3.6、Django 2.0和通道2.0.2的web服务器。我想构建一些测试,以确保我的websocket使用者行为良好,不幸的是,每当我运行这些测试时,它们都会被完全忽略。
我一直在跟踪官方渠道关于测试的文档,并且按原样复制了代码通道用于测试其通用使用者。,但是每当我运行测试时,测试运行程序只是报告它没有运行测试:
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%确信文件本身是通过在顶部放置一个print语句来加载的。我所有的其他测试都正常运行。任何帮助都是非常感谢的。
发布于 2018-07-16 15:50:43
默认的Django测试运行程序没有实现来使用异步,也不会正确地自动发现用@pytest.mark.asyncio修饰的测试函数。
FAQ很好地描述了测试找不到的原因。,但这是我为解决这个问题而做的事情。
安装库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
https://stackoverflow.com/questions/49396918
复制相似问题