Недавно я столкнулся с проблемой комбинирования юнит-тестов и тестов в 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 использует некоторые эвристики для сравнения выходных данных, таких как многоточие.
Кто-нибудь даст идею или предложение?