假设我正在编写一个名为test_this_thing in IPython的测试,我打算将它逐步保存到一个测试文件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测试所需的所有固定设备导入到我的-k test_this_thing中,并在每个设备上为我做f = f()位呢?
注意事项:当我用IPython编写测试时,我通常会从测试文件所在的目录运行它(即在运行ipython之前,将i cd放到该目录中)。
from test_some_tests import *很管用。有些人可能会添加各种__init__.py,以使他们的测试变得重要,但我倾向于不这样做(实际上,IIRC -- pytest的建议是不要这么做)。
发布于 2020-07-31 12:30:35
我想出了一个可行的方案,它带来了一个优势--它也导入了我的下划线辅助函数。
在测试文件的底部,我添加了:
if __name__ == "__main__":
fixture1 = fixture1()
fixture2 = fixture2()然后在IPython,而不是
from test_some_tests import *我知道
%run test_some_tests.py优点是这也将我的所有下划线帮助函数导入到IPython中。
https://stackoverflow.com/questions/63189048
复制相似问题