【发布时间】:2018-03-21 01:54:05
【问题描述】:
我正在开发一个运行 Python3.6、Django 2.0 和 Channels 2.0.2 的 Web 服务器。我想构建一些测试来确保我的 websocket 消费者行为正常,不幸的是,每当我运行测试时,它们都会被完全忽略。
我一直在关注official Channels documentation on testing,并按原样复制了代码 Channels uses to test its generic consumers,但每当我运行测试时,测试运行器只会报告它没有运行任何测试:
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% 确定文件本身正在通过在顶部放置一个打印语句来加载。我所有的其他测试都正常运行。非常感谢任何帮助。
【问题讨论】:
-
我也有同样的问题,在文件之前抛出打印语句向我保证文件正在被加载,而只是将
assert False放在函数体中没有任何作用,因为测试根本不会运行。跨度> -
尝试在他们的mailing list 上提问,或者在 Github 上创建问题。
-
您需要使用
pytest运行测试,因为测试与标准unittest库不兼容(函数而不是测试类,这就是unittest没有发现任何测试的原因) .这也是channels在他们的.travis.yml中所做的。 -
如果您想尝试运行
channels测试,请安装 Django 和channels以及测试附加功能:pip install Django channels[tests]并运行pytest命令。
标签: python django testing django-channels