Как настроить diff окно в выводе тестового модуля Python?

Я тестирую свое приложение с помощью встроенной библиотеки unittest (python 3.5), и некоторые тестовые примеры сравнивают (списки) словари. Когда эти тесты не проходят, вывод не очень полезен:

Первый отличительный элемент 1:
{'emi [1557 символов]al': 509201.03, 'Остаток_времени': нет, 'nomin[1213 символов] и т. д.}
{'emi [1557 символов]al': '509,201.03', 'Остаток_времени': нет, 'нет [1218 символов] и т. д.}

Достаточно легко увидеть, какой элемент списка неправильный, но ограниченное окно сравнения различий в имени ключа отличающейся записи словаря. Я знаю, что могу показать полный diff с self.maxDiff = None, но это не то, что я хочу. Мне нравится ограниченное окно различий, мне просто не нравится, где оно находится.

Можно ли как-то настроить размещение окна diff? В качестве альтернативы, как я могу получить информативный отчет об ошибках теста с тестами Python при сравнении словарей?

1 ответ

Решение

Эта функция была добавлена ​​как часть выпуска № 18996- и я понимаю, почему... пытаться найти разницу в длинной последовательности символов определенно не весело. Кто-то еще пожаловался на отсутствие контроля над сокращением номера, и в результате был открыт номер 21820.

Код, который делает сокращение, здесь. Возможно, вы сможете исправить это там, но я не рекомендую делать такие вещи. Кроме того, вы можете написать свой собственный метод или расширить класс TestCase, чтобы сравнить список словарей и получить полный контроль над результатами.

Другие вопросы по тегам