Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VSCode中运行当前Python单元测试的快捷方式_Python_Unit Testing_Visual Studio Code_Pytest - Fatal编程技术网

在VSCode中运行当前Python单元测试的快捷方式

在VSCode中运行当前Python单元测试的快捷方式,python,unit-testing,visual-studio-code,pytest,Python,Unit Testing,Visual Studio Code,Pytest,问题是关于VisualStudio代码(此处的VSCode)以及查找和运行py.test测试的代码 是否可以指定一些快捷方式来运行当前(光标下)测试方法和/或测试类 我真的很喜欢直接从VSCode运行单个测试的能力,但我的工作流程不是最优的,因为需要单击它并使用一些快捷方式 此图显示找到测试并可以运行时出现的按钮。我想知道是否可以只使用一些自定义快捷键而不是单击此按钮。转到文件>首选项>键盘快捷键 在搜索框中,键入python 下面将显示所有Python命令 选择要添加密钥绑定的命令,然后单

问题是关于VisualStudio代码(此处的VSCode)以及查找和运行py.test测试的代码

是否可以指定一些快捷方式来运行当前(光标下)测试方法和/或测试类

我真的很喜欢直接从VSCode运行单个测试的能力,但我的工作流程不是最优的,因为需要单击它并使用一些快捷方式


此图显示找到测试并可以运行时出现的按钮。我想知道是否可以只使用一些自定义快捷键而不是单击此按钮。

转到文件>首选项>键盘快捷键

在搜索框中,键入python

下面将显示所有Python命令

选择要添加密钥绑定的命令,然后单击“+”按钮。在新窗口中输入您的首选组合键

试试看

命令列表:


但是,
在游标上运行测试
对我不起作用。我使用
运行文件
。此外,也许您应该加入
workbench.action.files.save
test explorer.reload
,和
test explorer.run test at cursor
,带有宏扩展名。

假设在
test
侧栏中选择了要重复运行的单元测试(只需单击它即可),我发现了一个键盘驱动的选项,它不需要扩展就可以重复运行它。在VS代码中的任意位置,键入:

  • shift+cmd+i
    ,对我来说,它绑定到命令
    workbench.view.extension.test

  • (可选)请注意,令人恼火的是,有时您必须再次按
    shift+cmd+i
    来选择所讨论的单元测试(这对我来说似乎是一个bug-所有侧栏视图都会出现这种情况)

  • 选项卡空间
    (即选项卡,然后选项卡,然后空间)。这两个选项卡选择测试中的小bug符号,空格将启动所选测试的另一次调试运行

  • 以下是两次按下
    选项卡后屏幕的显示方式:

    然后
    空格
    “单击”所选的调试按钮

    通过这2-3个步骤,您可以无限重复此单元测试


    HTH

    这将打开一个包含项目中所有可用测试方法的下拉列表,然后我仍然必须输入方法名称才能运行它。另外,如果您的项目中有几千种测试方法,那么打开下拉列表确实需要一些时间。下面是下拉列表的屏幕截图:想象一下编写测试,向其中添加一些代码,按快捷键获取所有测试方法,等待10秒填充下拉列表,键入测试方法名称any最终运行测试。做一个小小的修改,重新经历整个过程。另一个小修改,重复舞蹈一次又一次。4个小修改,我已经花了1分钟多的时间,因为每次都要等待下拉列表填充并键入测试方法名称。@mislav,如果您添加“运行失败的单元测试”的快捷方式,是否有帮助。由于您使用的是pytest,因此还可以使用一些属性标记测试。例如:@pytest.mark.cur_test。然后,您可以创建一个任务和键盘快捷方式,只运行那些标记的测试,如“pytest-v-m'cur_test”。(测试通过后必须删除标记)好吧,如果测试通过了,但我添加了一个
    assert
    或两个,并想再次运行它怎么办?或者如果测试通过,然后我更改了数据;在上次运行中,这不是一个失败的测试,因此,它不在失败测试列表中:-/或者它通过了,但不应该通过:'D我希望您看到,使用运行失败的单元测试作为获取当前测试的支柱不是最好的选择。并且使用特定于我的dev env的附加装饰器标记测试对使用其他编辑器/ide的其他团队成员来说不是很友好。是吗这方面有什么进展吗?这样的捷径可能非常方便。很抱歉仍然像普通农民一样使用触控板点击它”\_(ツ)_/''我已经打开了一个问题来请求此功能。需要考虑投票。谢谢@SimoneGaiarin Upvots在Java测试插件中给出的命令ID是
    Java.test.editor.debug
    ,我已经绑定到Ctr-Shift-D,希望在IntelliJ Idea中在光标焦点所在的位置运行测试。我感觉到了你的痛苦。不确定这是否有助于Pyt亲爱的,但是从VSC的角度来看,这当然是可能的。
    runtestatcursor
    确实对我有用,谢谢。我正在使用pytestI。我添加了
    cmd+shift+I
    快捷方式来打开测试工作台。但是当它打开时,所选的测试不是我当前正在处理的测试:-/Ah,所以你经常在单元测试之间切换?是的,我的方法是当你想重复调试同一个单元测试时。嘎!这更像是:写一个新测试,运行它,它失败,再次运行它(重复n次),通过;写一个新测试,运行它,它通过,写一个新测试…所以“重复n次”位将与我的“解决方案”一起工作,对吗?你必须聚焦/选择它一次*,但在那之后,
    cmd+shift+i
    选项卡空间
    会起作用。至少对我来说是这样,因为我现在经常使用它。*注意,你可以用键盘
    向上
    向下
    箭头选择测试,所以根本不需要鼠标。