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

| 我想开始为我的Python代码编写单元测试,而py.test框架听起来比Python捆绑的单元测试更好。因此,我在项目中添加了一个“ tests \”目录,并向其添加了test_sample.py。现在,我想配置PyCharm以运行\“ tests \”目录中的所有测试。 据称,PyCharm在其测试运行程序中支持py.test。您应该能够创建运行/调试配置来运行测试,据称PyCharm具有专门用于py.test的“创建配置”对话框。但这就是他们关于该主题的文档的完整范围,我无法在任何地方找到这个所谓的对话框。 如果在“项目”工具窗口中右键单击目录,则应该看到一个“创建<名称> \”菜单项,但是唯一以“创建”开头的菜单项是“创建运行配置” \”。好的,也许文档只是错误的,并且“创建运行配置”听起来确实很有希望。不幸的是,它的子菜单中只有两项:“ C:\\ mypath ... \中的单元测试”和“ C:\\ mypath ... \中的文档测试”,这两项都不适用-我既不使用unittest也不使用doctest。 py.test没有菜单项。 如果我打开test_sample.py并在编辑器窗口中单击鼠标右键,则会得到承诺的\“ Create \”菜单项:\\“在test_sa中创建Unittests ... \”。 .. \”,然后是\“在test_sa ... \'\中运行\'Unittests和\”在test_sa ... \'\中调试\'Unittests。同样,这都是特定于unittest框架的; py.test没有。 如果我尝试使用菜单项“ \ unittest \”,则会出现一个对话框,其中包含“名称”,“类型”,“测试”组框以及“文件夹”和“ \“ Pattern \”和\“ Script \”和\“ Class \”和\“ Function \”,等等。这听起来与添加Python单元测试配置的对话框完全相同, py.test对话框的配置中应显示的\“ Name \”和\“ Test to run \”和\“ Keywords \”选项。对话框中没有任何内容可以切换我要添加的测试框架。 我正在Windows和Python 3.1.3和pytest 2.0.3上使用PyCharm 1.5.2。我可以从命令行在测试中成功运行
py.test
,所以这不是像pytest未正确安装那样的简单操作。 如何配置PyCharm以运行py.test测试?     
已邀请:
        请转到文件|设置|工具| Python Integrated Tools,并将默认测试运行程序更改为py.test。然后,您将获得py.test选项来创建测试,而不是单元测试。     
        PyCharm 2017.3
Preference -> Tools -> Python integrated Tools
-选择
py.test
作为
Default test runner
。 如果您使用Django
Preference -> Languages&Frameworks -> Django
-在
Do not use Django Test runner
上打勾 从“ 6”中清除所有先前存在的测试配置,否则将使用这些较早的配置运行测试。 要设置一些默认的其他参数,请更新py.test默认配置。
Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
    
        我认为您需要使用工具栏上的“运行/调试配置”项。单击它,然后单击“编辑配置”(或使用菜单项“运行”->“编辑配置”)。在左侧窗格的“默认值”部分中,有一个“ py.test \”项,我认为这是您想要的。 我还发现该手册与此用户界面不匹配。希望我正确理解了这个问题,对您有所帮助。     
        这是我如何通过pytest
3.7.2
(通过pip安装)和pycharms
2017.3
一起工作的: 转到
edit configurations
添加一个新的运行配置,然后选择ѭ0 在运行配置详细信息中,需要将
target
=
python
和下面的未命名字段设置为
tests
。看起来这是您的测试文件夹的名称。不太确定强硬。我还建议使用
-s
参数,以便在调试测试时控制台能够正常运行。没有参数pytest会捕获输出,并使调试控制台出现故障。 我的测试文件夹如下所示。这刚好在我项目的根目录下(
my_project/tests
)。 我的
foobar_test.py
文件:(无需导入): def test_foobar():     打印(\“ hello pytest \”)     断言为真 使用常规运行命令运行它     
对此,文献记载不充分。从默认设置添加新配置后,您就可以运行\“ / Applications / PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py \”脚本。它没有记录,并且具有自己的命令行参数构想。 您可以: 尝试玩一下,反转脚本,看看是否可以使py.test接受参数。它可能会起作用;对我来说不是上半个小时。 只需从控制台运行\“ py.test * .py \”。 奇怪的是,您很难找到任何讨论,因为JetBrains擅长用自己的页面轰炸Google算法。     
        当我遇到相同的问题并找到解决方案时,找到此线程 pycharm版本:2017.1.2 转到\“ Preferences \”-> \“ Tools \”-> \“ Python Integrated Tools \”,然后从右侧面板将默认测试运行程序设置为py.test 解决我的问题     
        我正在使用2018.2 我运行->编辑配置... 然后,单击模式对话框左上方的+。 选择\“ python tests \”-> py.test 然后给它起一个\\“使用py.test进行所有测试\”的名称 我选择目标:模块名称 并将其放入我的测试所在的模块中(对我来说就是“ tests \”),或者将我的所有测试代码与我的代码混合的模块放在其中。这让我不寒而栗。 我设置了Python解释器。 我将工作目录设置为项目目录。     
        在pycharm 2019.2中,您只需执行以下操作即可运行所有测试: 运行>编辑配置>添加pytest 设置选项,如以下屏幕截图所示 单击调试(或使用快捷键Shift + Alt + F9运行pytest) 有关pytest与pycharm的更高集成,请参阅https://www.jetbrains.com/help/pycharm/pytest.html     
        使用特殊的Conda python安装程序,其中包括py.test的pip安装以及Specs插件的使用(选项--spec)(对于Rspec来说,就像不错的测试摘要语言一样),我不得不这样做; 1.编辑默认的py.test以包含option = --spec,这意味着使用插件:https://github.com/pchomik/pytest-spec 2.使用py.test创建新的测试配置。更改其python解释器以使用〜/ anaconda / envs /您选择的解释器,例如py27作为我的命名。 3.删除\'unittests \'测试配置。 4,现在默认的测试配置是py.test,带有我可爱的Rspec样式输出。我喜欢它!谢谢大家! ps。关于运行/调试配置的Jetbrains文档在这里:https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test     
        有了2018.3,它似乎可以自动检测到我正在使用pytest,这很好,但是仍然不允许从项目的顶层运行。我必须为每个
tests
目录分别运行
pytest
。 但是,我发现我可以选择其中一种配置,然后手动对其进行编辑以在项目的根目录中运行,并且可以正常工作。我必须在“配置”下拉列表中手动选择它-不能右键单击“项目”窗格中的根文件夹。但是至少它允许我同时运行所有测试。     
        为您的项目启用Pytest 打开设置/首选项|工具|如选择测试框架中所述的Python Integrated Tools设置对话框。 在默认测试运行器字段中,选择pytest。 单击确定以保存设置。     

要回复问题请先登录注册