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