2016-12-23 4 views
8

Я работаю над представлением о вариантах тестирования python, и одна из технологий, которые я хочу продемонстрировать, - это pytest. Я планирую сделать презентацию из ноутбука jupyter/ipython. В идеале я хотел бы иметь возможность определить тестовую функцию в ячейке, а затем использовать pytest для запуска именно этой функции; таким образом я могу продемонстрировать индивидуальные особенности pytest и т. д.Выполнение тестовых функций pytest внутри ноутбука jupyter

Есть ли существующий способ сделать это? Ни одна из интерактивных функций, которые я видел в pytest api, по-видимому, не соответствует законопроекту, но я, безусловно, не специалист по тестированию. Я был бы счастлив написать плагин, чтобы сделать это, поэтому любые советы по лучшему подходу в этом направлении были бы замечательными.

Я видел pytest-ipynb, но, похоже, он не делает то, что мне нужно. Если эта оценка неверна, советы о том, как ее использовать, также будут отличными.

+0

Просто, чтобы добавить сюда данные, но на самом деле не отвечайте на вопрос, есть https://github.com/computationalmodelling/nbval –

ответ

7

Я создал ipython_pytest для этой цели и использовал его в my PyCon Helsinki 2016 presentation.

Вы бы использовать инструмент, как это:

%%pytest 

def test_my_stuff(): 
    assert 42 == 42 

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

+0

Это выглядит идеально! Это то, что я получаю от участия в конференции. – abingham

+0

Отлично! Почему бы не отметить мой ответ так, как принято? :) – akaihola

+0

К сожалению, я думал. – abingham

Смежные вопросы