【问题标题】:how to tell PyCharm to run pytest on test files not doctests如何告诉 PyCharm 在测试文件而不是 doctests 上运行 pytest
【发布时间】:2021-05-05 15:18:53
【问题描述】:

在模块的测试套件中,一些test_foo.py 文件的帮助函数在其文档字符串中包含文档测试模式。这会导致 PyCharm 在该文件中选择一个函数并尝试通过上下文菜单调试该函数时提供Debug 'Doctests in test_foo'。不管该函数是在任何实际的 test_...() 函数之前还是在文件末尾,只要存在带有 doctests 模式的单个文档字符串就会导致 PyCharm 表现出这种行为。

例如,如果我只是将所有 >>> ... 更改为 />>> ...(以削弱 doctests 搜索),那么测试文件的行为与预期的一样:函数上的上下文菜单提供 Debug 'pytest for test_foo.test_function'

如果两者都可行,有没有办法告诉 PyCharm 优先考虑 pytest 而不是 doctests

【问题讨论】:

  • 我认为没有。在这种情况下,我遇到了类似的问题,只是手动添加了 pytest 的配置。
  • 是的,我也这样做了,但是为我要调试的每个函数手动添加配置感到很沮丧。去除 doctests 似乎工作正常。也可以通过脚本完成:perl -pi -e 's/(?<!#)>>>/#>>>/' tests/**/*.py 削弱 doctest,反之则恢复它们。叹息。
  • 这可能是您目前最好的选择。我当时搜索了其他东西,包括检查 PyCharm 的源代码 IIRC,但没有找到任何东西。不过,您可以向 JetBrains 提出问题...

标签: python pycharm pytest doctest


【解决方案1】:

尝试运行 -> 运行 ... 菜单选项。弹出窗口应该有多种选择,包括 pytest

请在 PyCharm 的问题跟踪器https://youtrack.jetbrains.com/issue/PY-35985中投票给相应的票

【讨论】:

  • 出色的解决方法!您在 youtrack 上的工单准确描述了快速上下文菜单所需的行为。
  • 仅供参考,我们只是通过将带有 doctest 的辅助函数提取到单独的文件中来修复它...
猜你喜欢
  • 2020-04-25
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 2023-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多