【发布时间】:2020-07-31 09:18:10
【问题描述】:
假设我正在 IPython 中编写一个名为 test_this_thing 的测试,我打算将其逐步保存到测试文件 test_some_tests.py 中。
当涉及到运行我的测试时,我可以在 IPython 中轻松做到这一点,并得到一位同事的这个好建议:
%run -m pytest -- -k test_this_thing
假设我在我的测试文件中添加了几个夹具(标记为@pytest.fixture)。为了让它们进入我的 IPython REPL,我必须导入它们并调用它们(因为它们是作为函数编写的):
from test_some_tests import *
fixture1 = fixture1()
fixture2 = fixture2()
我想知道是否有任何方法可以利用 pytest 的夹具查找功能来编写 IPython 魔术函数,例如:
%import_fixtures -k test_this_thing
这会将-k test_this_thing 测试所需的所有固定装置导入我的IPython 并在每个固定装置上为我执行f = f() 位?
注意:当我在 IPython 中编写测试时,我通常会从我的测试文件所在的目录运行它(即在运行 ipython 之前,我将 cd 进入该目录),这样
from test_some_tests import *
有效。有些人可能会添加各种__init__.py 以使他们的测试可导入,但我倾向于不这样做(事实上,IIRC pytest 的建议是不这样做)。
【问题讨论】:
标签: ipython pytest ipython-magic