IPython и юнит-тесты, фиксированные тесты не отображаются как фиксированные - PullRequest
2 голосов
/ 21 марта 2012

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

In [30]: run runTests.py

Что, насколько я могу судить, работало отлично, выполняя тесты, как я описал в файле runTests.py. Однако вывод показал, что у меня были неудачные тесты:

Ran 16 tests in 0.156s

FAILED (failures=3)

Итак, я покопался в своем коде, исправил проблему и вернулся к IPython, чтобы снова запустить тесты:

In [31]: run runTests.py

Однако, это сообщило, что у меня все еще были неудачные тесты:

Ran 16 tests in 0.141s

FAILED (failures=3)

Выполнение тестов вне IPython показало, что я действительно их исправил. Документация IPython, кажется, утверждает, что любые изменения в моем коде должны отражаться каждый раз, когда я использую %run:

Команда% run magic позволяет вам запускать любой скрипт python и загружать все его данные непосредственно в интерактивное пространство имен. Поскольку файл каждый раз перечитывается с диска, изменения, которые вы вносите в него, отражаются немедленно.

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

1 Ответ

2 голосов
/ 22 марта 2012

Да, я думаю, это потому, что ваши импортированные модули не перезагружаются между запусками.

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

...