如何使用 Python 中的 \`pytest\`?

新手上路,请多包涵

我在一个最近切换到 pytest unittest 框架的项目中工作。我习惯于从 Eclipse 调用我的测试,这样我就可以使用调试器(例如,放置断点来分析测试失败是如何发展的)。现在这不再可能了,因为运行测试的唯一方法是通过命令行黑框。

有没有什么方法可以在 Python 中使用 pytest ,这样就不会被迫退出 IDE?测试当然不应该在单独的进程中运行。

原文由 nikow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 456
2 个回答

我想我现在可以回答我自己的问题了,这很简单:

 import pytest

pytest.main(args)

这记录在 “从 Python 代码调用 pytest” 一节中。然后我可以运行这个模块和/或使用集成调试器启动它。

args 是命令行参数的列表,所以例如只运行特定的测试我可以使用类似的东西:

 args_str = "-k test_myfavorite"
args = args_str.split(" ")
pytest.main(args)

原文由 nikow 发布,翻译遵循 CC BY-SA 4.0 许可协议

似乎现在(py.test 版本 2.0+)有人也可以这样做:

 import pytest

pytest.main('-x {0}'.format(argument))

# Or
# pytest.main(['-x', 'argument'])

参考

原文由 Richard 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题