如何使py.test运行doctests以及普通的测试目录?

Yan*_*ang 17 python testing doctest pytest

我们目前py.test使用coverage插件在tests目录中运行我们的测试.

从主代码中提取doctests的最简单方法是什么? --doctest-modules不起作用(可能因为它只是运行doctests tests).请注意,我们希望在同一进程中包含doctests(而不是简单地运行单独的调用py.test),因为我们希望在代码覆盖率中考虑doctest.

dmi*_*nov 15

现在实施:-).

要使用,请运行py.test --doctest-modules命令,或使用以下命令设置配置pytest.ini:

$ cat pytest.ini
# content of pytest.ini
[pytest]
addopts = --doctest-modules
Run Code Online (Sandbox Code Playgroud)

手册页:PyTest:模块和测试文件的doctest集成.

  • 这对我们来说不起作用,我们想要指定测试位于“mypackage/tests”中,而文档测试位于“mypackage/foo”中。真正起作用的是“pytest mypackage/tests --doctest-modules mypackage/foo”。如何在“pytest.ini”中定义这一点?我试图在那里表达这一点,但没有雪茄。 (2认同)
  • 好吧,我的评论是错误的;它做了我想要的事情,但出于错误的原因:测试和文档测试都是从两个路径收集的。我能够在 Makefile 中进一步调整 pytest 调用,但它并不能完全达到我想要的效果(我们还有集成测试和集成精简测试)。最重要的是,我需要一种方法来告诉 pytest 从可能的两组不同的目录中收集 doctest 和常规测试集合。例如:对所有内容进行文档测试(`./mypackage`),并且仅从非集成测试进行测试(`./mypackage/tests`)。 (2认同)