Вы можете различить тест и переменную настройку? - PullRequest
0 голосов
/ 26 марта 2009

Мне нравится doctest, но когда у вас есть сложные аргументы, которые вам нужно установить, прежде чем перейти к функции, это становится действительно трудно читать .. Следовательно, вы начинаете использовать несколько строк, а затем вызываете функция, которую вы хотели бы проверить .. Однако этот подход сообщить, что у вас есть несколько тестов, а не реальное количество тесты, которые у вас есть .. Пример проиллюстрирует, что я имею в виду ..

def returnme(x):
   """
   Returns what you pass

   >>> y = (2, 3, 5, 7)
   >>> returnme(y)
   (2, 3, 5, 7)
   """
   return x

В приведенном фрагменте есть только один тест, а другой - просто однако, присваивание переменной - это то, что сообщается ..

    Trying:
       y = (2, 3, 5, 7)
    Expecting nothing
    ok
    Trying:
       returnme(y)
    Expecting:
       (2, 3, 5, 7)
    ok
    
    2 tests in 2 items.
    2 passed and 0 failed.

Я посмотрел на задокументированные флаги, наверняка что-то упустил ..

1 Ответ

5 голосов
/ 26 марта 2009

Добавьте три периода, чтобы указать, что вы хотите продолжить текущую строку, например:

def returnme(x):
   """
   Returns what you pass

   >>> y = (2, 3, 5, 7)
   ... returnme(y)        # Note the difference here.
   ...                    # Another blank line ends this test.
   (2, 3, 5, 7)
   """
   return x

Это должно сработать. Вы можете узнать больше о том, как doctest интерпретирует отдельные тесты здесь .

...