首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入热测试夹具的IPython快捷方式

导入热测试夹具的IPython快捷方式
EN

Stack Overflow用户
提问于 2020-07-31 09:18:10
回答 1查看 168关注 0票数 1

假设我正在编写一个名为test_this_thing in IPython的测试,我打算将它逐步保存到一个测试文件test_some_tests.py中。

当涉及到运行我的测试时,我可以通过IPython轻松地做到这一点,这是一个同事提出的一个很好的建议:

代码语言:javascript
复制
%run -m pytest -- -k test_this_thing

假设我在我的测试文件中添加了几个固定装置(标记为@pytest.fixture)。要将它们导入到我的IPython REPL中,我必须导入它们并调用它们(因为它们是作为函数编写的):

代码语言:javascript
复制
from test_some_tests import *

fixture1 = fixture1()
fixture2 = fixture2()

我想知道是否有任何一种方法可以利用pytest的治具查找功能来编写一个IPython魔术函数,如:

代码语言:javascript
复制
%import_fixtures -k test_this_thing

哪个会将-k test_this_thing测试所需的所有固定设备导入到我的-k test_this_thing中,并在每个设备上为我做f = f()位呢?

注意事项:当我用IPython编写测试时,我通常会从测试文件所在的目录运行它(即在运行ipython之前,将i cd放到该目录中)。

代码语言:javascript
复制
from test_some_tests import *

很管用。有些人可能会添加各种__init__.py,以使他们的测试变得重要,但我倾向于不这样做(实际上,IIRC -- pytest的建议是不要这么做)。

EN

回答 1

Stack Overflow用户

发布于 2020-07-31 12:30:35

我想出了一个可行的方案,它带来了一个优势--它也导入了我的下划线辅助函数。

在测试文件的底部,我添加了:

代码语言:javascript
复制
if __name__ == "__main__":
    fixture1 = fixture1()
    fixture2 = fixture2()

然后在IPython,而不是

代码语言:javascript
复制
from test_some_tests import *

我知道

代码语言:javascript
复制
%run test_some_tests.py

优点是这也将我的所有下划线帮助函数导入到IPython中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63189048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档