سؤال

I am trying to get into testing in Python using the doctest module. At the moment I do

  1. Write the tests for the functions.
  2. implement the functions code.
  3. If Tests pass, write more tests and more code.
  4. When the function is done move on to the next function to implement.

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.

Is there a way to tell doctest "don't test functions a(), b() and c()", so that it runs only the unmarked functions?

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.

هل كانت مفيدة؟

المحلول

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())

example found via google.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top