问题描述
我正在尝试使用doctest模块进行Python测试.此刻我做
I am trying to get into testing in Python using the doctest module. At the moment I do
- 编写功能测试.
- 实现功能代码.
- 如果测试通过,请编写更多测试和更多代码.
- 该功能完成后,继续执行下一个功能.
因此,在同一个模块中执行了3或4个(独立的)函数并进行了许多测试之后,我通过doctest获得了巨大的输出.而且有点烦人.
So after 3 or 4 (independent) functions in the same module with many tests I get a huge output by doctest. And it is a little annoysing.
有没有办法告诉doctest 不要测试功能a()
,b()
和c()
",以便仅运行未标记功能?
Is there a way to tell doctest "don't test functions a()
, b()
and c()
", so that it runs only the unmarked functions?
我只找到了 doctest.SKIP
标志,足以满足我的需求.我将不得不在很多行中放置此标志.而且,如果我想再次检查带有 marked 的功能,则必须手动遍历代码并删除我在其中设置的所有标志.
I only found the doctest.SKIP
flag, which is not sufficient for my needs. I would have to place this flag in a lot of lines. And if I would want to check a marked function again, I would have to go manually through the code and remove any flag I set inside.
推荐答案
看起来像您可以将函数传递给run_docstring_examples
:
looks like you could pass the function to run_docstring_examples
:
def f(a, b, c):
'''
>>> f(1,2,3)
42
'''
if __name__ == '__main__':
import doctest
# doctest.testmod()
doctest.run_docstring_examples(f, globals())
找到
示例通过Google.
example found via google.
这篇关于是否可以仅在模块中使用doctest测试特定功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!