如何配置PyCharm来运行py.test测试?

Joe*_*ite 145 python pytest pycharm

我想开始我的Python代码编写单元测试,以及py.test框架听起来比Python捆绑的一个更好的选择单元测试.所以我在我的项目中添加了一个"tests"目录,并添加了test_sample.py.现在我想配置PyCharm来运行我的"tests"目录中的所有测试.

据称PyCharm 在其测试运行支持py.test.您应该能够创建运行/调试配置来运行测试,并且据称PyCharm具有专门用于py.test"创建配置"对话框.但这是关于这个主题的文档的完整范围,我无法在任何地方找到这个所谓的对话框.

如果我右键单击项目工具窗口中的目录,我应该看到"创建<名称>"菜单项,但唯一以"创建"开头的菜单项是"创建运行配置".好吧,也许文档是错误的,"创建运行配置"确实听起来很有希望.不幸的是,其子菜单中只有两个项目是"C:\ mypath中的单元测试..."和"C:\ mypath中的Doctests ......",两者都不适用 - 我既不使用unittest也不使用doctest.py.test没有菜单项.

如果我打开我的test_sample.py并在编辑器窗口中右键单击,我会得到承诺的"创建<名称>"菜单项:在test_sa中创建"单元测试...",然后"运行" '在test_sa中运行单元测试...'"和在test_sa中调试'单元测试......'".所以,这一切都与unittest框架有关; py.test没什么.

如果我尝试使用"unittest"的菜单项,我会看到一个对话框,其中包含"名称","类型","测试"组框,其中包含"文件夹"和"模式","脚本"和"类" "和"功能",等等.这听起来像是为Python单元测试添加配置的对话框,而不是像应该显示的"名称"和"测试运行"和"关键字"选项在py.test对话框的配置中.对话框中没有任何内容可以切换我添加的测试框架.

我在Windows上使用PyCharm 1.5.2和Python 3.1.3以及pytest 2.0.3.我可以从命令行成功运行py.test我的测试,所以这并不像pytest没有正确安装那么简单.

如何配置PyCharm来运行我的py.test测试?

yol*_*ole 212

请转到文件| 设置| 工具| Python集成工具并将默认测试运行器更改为py.test.然后你将得到py.test选项来创建测试而不是单元测试.

  • 还要记住将源目录标记为"sources root":http://www.jetbrains.com/pycharm/webhelp/content-root.html (3认同)
  • 看起来“文件| 设置 | 工具| Python 集成工具仅在项目设置中可用,而在 PyCharm 5 中的默认设置中不可用。 (2认同)
  • 配置完成后,您如何实际运行测试? (2认同)

小智 39

PyCharm 2017.3

  1. Preference -> Tools -> Python integrated Tools- 选择py.testDefault test runner.
  2. 如果您使用Django Preference -> Languages&Frameworks -> Django- Set tick onDo not use Django Test runner
  3. 清除所有先前运行的测试Run/Debug configuration,否则将使用该配置运行测试.
  4. 要设置一些默认的附加参数,请更新py.test默认配置. Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments

  • 在PyCharm 2017.3.2中,即使我将py.test设置为默认值,当我右键单击Projects面板中的项目并选择`New => Python File`时,`Kind:`下拉列表仅提供:Python文件,单元测试,Python存根,而不是Pytest.我查看了上面线程中提到的所有位置.我错过了什么? (2认同)
  • 第 3 步是巨大的。我不知道这些配置会在我不做任何事情的情况下自动创建,并且它们位于与 pytest 不同的子标头中,因此它们的优先级并不明显。 (2认同)
  • 对我来说,第二点解决了这个问题。其他所有内容都已设置到位(甚至某些测试默认由 pytest 运行,其他测试则不运行),直到我勾选了该复选框。 (2认同)

Sco*_*ths 17

我认为您需要使用工具栏上的"运行/调试配置"项.单击它并"编辑配置"(或者使用菜单项"运行" - >"编辑配置").在左侧窗格的"默认值"部分中,有一个'py.test'项,我认为这是你想要的.

我还发现手册与UI无法匹配.希望我已经正确理解了这个问题并且有所帮助.

  • "Defaults> py.test"页面实际上并没有给我任何创建配置的方法.但是如果我进入Edit Configurations对话框,单击"+"工具栏按钮,选择"py.test",并将"Working directory"设置为包含我的测试的目录,这确实创建了一个可以运行我的测试的配置.所以+1指的是我对程序的一个有用的部分.我会给@yole接受的答案,因为我认为将默认值更改为py.test是一个更好的解决方案 - 它应该让我只运行当前文件,以及类似的东西. (4认同)

geb*_*imo 10

在 pycharm 2019.2 中,您可以简单地执行以下操作来运行所有测试:

  1. 运行 > 编辑配置 > 添加 pytest
  2. 设置选项,如下面的屏幕截图所示 配置截图
  3. 单击调试(或使用热键 Shift+Alt+F9 运行 pytest)

pytest 与 pycharm 的更高集成,参见https://www.jetbrains.com/help/pycharm/pytest.html


Ben*_*ier 8

这是我使它与pytest 3.7.2(通过pip安装)和pycharms一起工作的方式2017.3

  1. edit configurations

  1. 添加一个新的运行配置并选择 py.test

  1. 在运行配置详细信息中,您需要将target= python和下面的未命名字段设置为tests。看起来这是您的测试文件夹的名称。不太确定强硬。我还建议使用该-s参数,以便在调试测试时,控制台将正常运行。没有参数pytest会捕获输出,并使调试控制台出现故障。

  1. 我的测试文件夹如下所示。这刚好在我的项目(my_project/tests)的根目录之下。

  1. 我的foobar_test.py文件:(无需导入):
def test_foobar():
    打印(“ Hello pytest”)
    断言为真
  1. 使用常规运行命令运行它


Cha*_*iam 5

可靠的文件很难记录.从默认设置添加新配置后,您将处于运行"/ Applications/PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py"脚本的领域.它没有记录,并且有自己的命令行参数的想法.

您可以:

  1. 尝试游戏,反转脚本,看看你是否能以某种方式让py.test接受参数.它可能有用; 它对我来说不是在前半个小时.
  2. 只需从控制台运行"py.test*.py"即可.

奇怪的是,你会发现很难找到任何讨论,因为JetBrains在用自己的页面轰炸谷歌算法方面做得很好.