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

Python 如何配置PyCharm以运行py.test测试?,python,pycharm,pytest,Python,Pycharm,Pytest,我想开始为我的Python代码编写单元测试,这个框架听起来比Python的捆绑测试更好。因此,我在我的项目中添加了一个“tests”目录,并添加到其中。现在我想配置PyCharm来运行我的“tests”目录中的所有测试 据说皮查姆在试跑中。你应该能够运行你的测试,据说PyCharm有一个。但这是他们关于这个主题的全部文档,我在任何地方都找不到这个所谓的对话框 如果我右键单击项目工具窗口中的目录,我将看到一个“创建”菜单项,但唯一以“创建”开头的菜单项是“创建运行配置”。好吧,也许文档是错的,“创

我想开始为我的Python代码编写单元测试,这个框架听起来比Python的捆绑测试更好。因此,我在我的项目中添加了一个“tests”目录,并添加到其中。现在我想配置PyCharm来运行我的“tests”目录中的所有测试

据说皮查姆在试跑中。你应该能够运行你的测试,据说PyCharm有一个。但这是他们关于这个主题的全部文档,我在任何地方都找不到这个所谓的对话框

如果我右键单击项目工具窗口中的目录,我将看到一个“创建”菜单项,但唯一以“创建”开头的菜单项是“创建运行配置”。好吧,也许文档是错的,“创建运行配置”听起来很有希望。不幸的是,它的子菜单中只有两项是“C:\mypath中的Unittests…”和“C:\mypath中的DoctTests…”,这两项都不适用——我既不使用unittest也不使用DoctTest。py.test没有菜单项

如果我打开我的test_sample.py并在编辑器窗口中右键单击,我会得到承诺的“创建”菜单项:有“创建”test_sa中的Unittests…“…”,然后是“运行”test_sa中的Unittests…“,“调试”test_sa中的Unittests…”。同样,这都是特定于unittest框架的;py.test没有任何内容

如果我尝试使用“unittest”菜单项,我会得到一个对话框,其中有“名称”、“类型”选项,还有一个“测试”组框,其中有“文件夹”、“模式”、“脚本”、“类”和“函数”等。这听起来和文档中记录的添加对话框完全一样,而不像“名称”、“要运行的测试”和“关键字”应该显示在对话框中的选项。对话框中没有任何东西可以切换我要添加的测试框架

我在Windows上使用PyCharm 1.5.2和Python 3.1.3以及pytest 2.0.3。我可以从命令行成功地在我的测试上运行
py.test
,因此这不是像pytest没有正确安装这样简单的事情


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

我认为您需要使用工具栏上的运行/调试配置项。单击它并“编辑配置”(或者使用菜单项Run->Edit Configurations)。在左窗格的“Defaults”部分有一个“py.test”项,我认为这是您想要的


我还发现手册与此的UI不匹配。希望我正确理解了这个问题,这会有所帮助。

请转到文件|设置|工具| Python集成工具,并将默认测试运行程序更改为py.test。然后,您将获得py.test选项来创建测试,而不是unittest选项。

可以肯定的是,它的文档记录很差。从默认设置中添加新配置后,您将进入运行“/Applications/PyCharm CE.app/Contents/helpers/PyCharm/pytestrunner.py”脚本的领域。它没有文档记录,并且对命令行参数有自己的想法

你可以:

  • 试着玩一玩,反转脚本,看看是否可以让py.test接受参数。它可能会起作用;对我来说,前半个小时没有
  • 只需从控制台运行“py.test*.py”

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

    有一个特殊的Conda python设置,其中包括py.test的pip安装以及Specs addin(选项--spec)(对于类似Rspec的尼斯测试摘要语言)的使用,我不得不这么做

    1.编辑默认的py.test以包含选项=--spec,这意味着使用插件:

    2.使用py.test创建新的测试配置。将其python解释器更改为使用~/anaconda/envs/您选择的解释器,例如MyNamings的py27

    3.删除“unittests”测试配置

    4.现在默认的测试配置是py.test,带有我可爱的Rspec风格的输出。我喜欢!谢谢大家


    p、 美国Jetbrains关于运行/调试配置的文档在这里:

    当我遇到同样的问题并找到解决方案时,找到这个线程 pycharm版本:2017.1.2 转到“首选项”->“工具”->“Python集成工具”,并将右侧面板中的默认测试运行程序设置为py.test 解决我的问题

    PyCharm 2017.3

  • 首选项->工具->Python集成工具
    -选择
    py.test
    作为
    默认测试运行程序
  • 如果您使用Django
    Preference->Languages&Frameworks->Django
    ,请在
    上设置勾号,不要使用Django测试运行程序
  • 运行/调试配置
    中清除所有以前存在的测试配置,否则将使用这些旧配置运行测试
  • 要设置一些默认的附加参数,请更新py.test默认配置<代码>运行/调试配置->默认值->Python测试->py.test->其他参数
  • 我用的是2018.2

    我运行->编辑配置。。。 然后单击模态对话框左上角的+。 选择“python测试”->py.test 然后我给它起了个名字,比如“使用py.test进行所有测试”

    我选择目标:模块名称 然后放入我的测试所在的模块(对我来说是“测试”),或者如果我的测试与代码混合在一起,则放入所有代码所在的模块。这让我大吃一惊

    我设置了Python解释器


    我将工作目录设置为项目目录。

    以下是我如何使用pytest
    3.7.2
    (通过pip安装)和pycharms
    2017.3

  • 转到
    编辑配置
  • 添加一个新的运行配置并选择
    py.test
  • 在运行配置详细信息中,需要将
    target
    =
    python
    和下面的未命名字段设置为
    tests
    。看起来这是您的测试文件夹的名称。不太确定。我还建议使用
    -s
    参数,以便在调试测试时,控制台将 def test_foobar(): print("hello pytest") assert True