We currently have pytest with the coverage plugin running over our tests in a tests directory.
What's the simplest way to also run doctests extracted from our main code? --doctest-modules doesn't work (probably since it just runs doctests from tests). Note that we want to include doctests in the same process (and not simply run a separate invocation of py.test) because we want to account for doctest in code coverage.
Now it is implemented :-).
To use, either run py.test --doctest-modules command, or set your configuration with pytest.ini:
$ cat pytest.ini
# content of pytest.ini
[pytest]
addopts = --doctest-modules
Man page: PyTest: doctest integration for modules and test files.
This is how I integrate doctest in a pytest test file:
import doctest
from mylib import mymodule
def test_something():
"""some regular pytest"""
foo = mymodule.MyClass()
assert foo.does_something() is True
def test_docstring():
doctest_results = doctest.testmod(m=mymodule)
assert doctest_results.failed == 0
pytest will fail if doctest fails and the terminal will show you the doctest report.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With