繁体   English   中英

如何使用PyCharm运行doctests?

[英]How do I run doctests with PyCharm?

在PyCharm IDE中,如果我右键单击带有doctest的函数/方法,有时右键单击菜单会给我选项:“ 运行'Doctest my_function_name' ”,有时右键单击菜单只会给出运行整个文件的选项(不作为doctest)。

什么时候它会给出“运行doctest”选项以及何时不会? 有没有办法以某种方式强迫它?

PyCharm运行模块(或其中的测试)是通过运行配置完成的 右键单击模块时, PyCharm搜索该模块的现有Run Configuration 如果找到配置(这可能是由于先前的运行或手动创建Configuration ), PyCharm将仅建议运行该配置。

例如,如果创建了module.py的配置来运行其doctests ,那么右键单击module.py时我们会看到这个选项。 但是,如果没有找到配置, PyCharm建议在不同的选项中运行模块,具体取决于模块中的代码(定期运行,或运行doctests / unittests )。 选择一个选项后, PyCharm会隐式创建相应的临时Run Configuration 从这里开始,当右键单击模块时,您将只获得为该模块创建的配置。

重要侧面说明:PyCharm节省多达6个临时(即Configurations通过运行一个模块所创建的) Run Configurations - 3在“巨蟒”,即脚本,并在“巨蟒测试” 3。 这意味着,如果你运行moduleA.pymoduleB.pymoduleC.py ,然后moduleD.py ,临时Configurations在PyCharm将moduleB.pymoduleC.pymoduleD.py 除非明确保存,否则moduleA.py的配置将自动删除。

此行为可以重现如下:

  1. PyCharm ,创建一个新的Python模块:“temp”

2.将以下内容添加到模块中:

"""
    >>> print 3.14
    3.14
"""

if __name__ == '__main__':
    pass
  1. 右键单击doctest部分,可以选择“在temp中运行'Doctests'”
  2. 右键单击主要部分,可以选择“运行'temp'”
  3. 选择任何选项,使另一个选项在后续运行中消失。 例如,选择运行模块将使后续运行中运行Doctests的选项消失,反之亦然。 回到第一阶段,可以通过删除模块的“运行配置”来选择两个选项:

运行 - >编辑配置 - >找到模块的当前配置(通常突出显示) - >单击“减号”按钮(左上角) - >单击“应用” - >单击“确定”。 现在我们回到第3步。

(转载于PyCharm 5.0和4.5)

总结一下:

  • 如果没有找到Run Configuration ,PyCharm建议以任何可能的方式运行模块(作为脚本,doctests或unittests)
  • 如果找到Run Configuration ,PyCharm仅建议Configuration
  • 如果PyCharm没有为您提供所需的运行选项,请找到阻止它为您提供该选项并将其删除Run Configuration ,或创建一个将运行该文件或方法/函数的新配置,就像您一样想。

如果您不想删除配置,还可以点击Run |的快捷键 恢复程序(我的F9)弹出一个完整的选择列表

如果上述为你工作-确保你的模块没有命名doctest ; 它会导致冲突,从而导致异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM