Запуск тестовых примеров 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()
Другие вопросы по тегам