Почему doctest не обнаруживает мои тесты?

class Test:
    def __init__(self):
        pass

    '''
    This function parses a name according to following rules - 

    >>> Test().name('Kshitiz Sharma')
    Sharma, Kshitiz

    '''
    def name(self, name):
        name = name.split()
        return name[1] + ", " + name[0]

if __name__ == "__main__":
    import doctest
    doctest.testmod()

Выход -

4 items had no tests:
    __main__
    __main__.Test
    __main__.Test.__init__
    __main__.Test.name
0 tests in 4 items.
0 passed and 0 failed.
Test passed.

Где мой тест?


person Kshitiz Sharma    schedule 13.07.2013    source источник


Ответы (1)


Поместите строку документации внутри метода.

def name(self, name):
    '''
    This function parses a name according to following rules - 

    >>> name('Kshitiz Sharma')
    <BLANKLINE>

    '''
    pass

Кроме того, чтобы правильно запустить тест метода, вам нужно фактически создать экземпляр класса, чтобы иметь доступ к методу во время самого теста:

    >>> t = Test(); t.name('Kshitiz Sharma')
    <BLANKLINE>
person Sam Nicholls    schedule 13.07.2013
comment
@KshitizSharma Python: использование doctests для классов - person Sam Nicholls; 13.07.2013