简体   繁体   中英

Django Ignoring Asynch Tests Completely (Django Channels)

I'm working on a web server running Python3.6, Django 2.0 and Channels 2.0.2. I'd like to build some tests to make sure my websocket consumers are behaving themselves, unfortunately, whenever I run the tests they are all ignored completely.

I've been following the official Channels documentation on testing , and I copied the code Channels uses to test its generic consumers as is but whenever I run the tests, the test runner simply reports that it ran no tests:

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'...

I get no errors or other warnings. I've double checked that I've installed pytest-asyncio and pytest-django , and I'm 100% sure the file itself is being loaded by placing a print statement at the top. All my other tests run normally. Any help is greatly appreciated.

The default Django test runner is not implemented to work with asyncio and will not properly auto-discover test functions decorated with @pytest.mark.asyncio .

The FAQ does a decent job of outlining the reasons tests wont be found but here's what I did in order to fix this issue on my end.

Install the libraries pytest , pytest-django , and pytest-asyncio .

pipenv install pytest pytest-django pytest-asyncio

Create a file pytest.ini at the root of your project containing the following and swap projectname.settings for the proper name of your projects settings file.

[pytest]
DJANGO_SETTINGS_MODULE = projectname.settings
python_files = tests.py test_*.py *_tests.py

I was then able to run the tests using pytest as described in https://channels.readthedocs.io/en/latest/topics/testing.html

If this still doesn't work, give this a look-through: https://pytest-django.readthedocs.io/en/latest/faq.html#faq-tests-not-being-picked-up

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM