The warnings docs clearly state that it captures warnings during test execution, but that means any warnings issued during test collection will not be captured and will silently pass. Consider this slight tweak to the canonical example:
$ cat test_show_warnings.py
import warnings
warnings.warn("foo", UserWarning)
def test_one():
assert True
$ .tox/python/bin/pytest test_show_warnings.py -s
====================================== test session starts =======================================
platform darwin -- Python 3.7.0b1, pytest-3.4.1, py-1.5.2, pluggy-0.6.0
rootdir: /Users/jaraco/warnings, inifile:
collecting 0 items /Users/jaraco/warnings/test_show_warnings.py:4: UserWarning: foo
warnings.warn("foo", UserWarning)
collected 1 item
test_show_warnings.py .
==================================== 1 passed in 0.00 seconds ====================================
$ .tox/python/bin/pytest test_show_warnings.py
====================================== test session starts =======================================
platform darwin -- Python 3.7.0b1, pytest-3.4.1, py-1.5.2, pluggy-0.6.0
rootdir: /Users/jaraco/warnings, inifile:
collected 1 item
test_show_warnings.py . [100%]
==================================== 1 passed in 0.00 seconds ====================================
Would it be possible for the warnings feature to also be enabled during test collection, such that warnings like these could also be captured and reported and tweaked by the pytest config?
Hi @jaraco, thanks for writing down this issue, this was a known limitation that was supposed to be registered in an issue already but it seems it got forgotten.
It should be perfectly possible to capture and display warnings during collection, so hopefully this is something that will be tackled in the internal warnings refactoring for 3.5.
I'm interested in seeing this fixed since it hides for example deprecation warnings from attrs. Would this be doable without intimate knowledge of the pytest codebase?
Hi @Lukas0907, unfortunately this needs some internal refactoring to be done correctly; thankfully this is something that we do intend to fix for 3.7. 馃憤
Thanks a lot! Looking forward to 3.7 then. :)
Closed by #3931
Most helpful comment
Closed by #3931