Использование doctest "анализатор результатов" в рамках юнит-тестов в Python? - PullRequest
2 голосов
/ 13 июня 2009

Недавно я столкнулся с проблемой комбинирования юнит-тестов и тестов в Python. Я работал над этой проблемой по-другому, но у меня все еще есть вопрос об этом.

Модуль Python doctest анализирует строки документации в модуле и запускает команды, следующие за ">>>" в начале каждой строки, и сравнивает выходные данные и те, что в строках документации.

Интересно, что я могу использовать этот метод сравнения , реализованный модулем doctest, когда захочу. Я знаю, что можно добавить doctest в набор тестов в качестве тестового примера, но здесь я хочу сделать это в одном тестовом примере.

Это примерно так:

class MyTest(TestCase):
    def testIt(self):
        # some codes like self.assertEqual(...)
        output = StringIO()
        with StdoutCollector(output):
            # do something that uses stdout
        # I want something like this:
        doctest.compare_result(output.getvalue(), 'expected output')
        # do more things

Поскольку doctest использует некоторые эвристики для сравнения выходных данных, таких как многоточие.

Кто-нибудь даст идею или предложение?

1 Ответ

2 голосов
/ 13 июня 2009
...