Запуск тестовых примеров Pytest из скрипта теста
Вся документация Pytest указывает, что py.test file_name
это стандартный способ запуска тестовых случаев Pytest. Но я разрабатываю в Emacs сценарий Python на левой панели и интерпретатор Python на правой панели.
Мой рабочий процесс заключается в том, что я делаю изменения в скрипте Python, CTRL-C C (чтобы обновленные изменения были отправлены в REPL), и перехожу в REPL (CTRL-O), чтобы проверить обновленный код. Было бы хорошо, если бы я мог внести изменения в свой тестовый пример слева, переместиться на правый экран REPL и выполнить обновленный тестовый пример.
Есть ли способ запуска тестовых случаев pytest из REPL или внутри скрипта, в отличие от порождения оболочки и запуска команды pytest?
РЕДАКТИРОВАТЬ: Как в стороне, я пытался использовать main
функция из pytest и вызов ее в скрипте, но по какой-то забавной причине изменения не будут приняты, пока я не убью старый REPL и не начну новый. Этого не происходит с другими скриптами Python, поэтому я уверен, что это связано с pytest. Вот код:
def test_add():
assert myadd(1, 2) == 3
if __name__ == '__main__':
pytest.main()
1 ответ
Следующий комментарий @Conrad.Dean. Кажется, что вставка тестов в какой-то pytest.py является своего рода полезным соглашением. Ниже приведен пример, иллюстрирующий роль if __name__ == '__main__'
:
def myadd(first, second):
return first + second
def test_add():
assert myadd(1, 2) == 3
if __name__ == '__main__':
print("Running test_add")
test_add()