Visual studio code pytest的无效输出

Visual studio code pytest的无效输出,visual-studio-code,pytest,pytest-django,Visual Studio Code,Pytest,Pytest Django,TLDR:如何从pytest获得更好的输出 我正在使用Django进行常规的Python 3单元测试。 我刚刚切换到pytest django来运行测试 pytest几乎对我所有的测试都抛出一个错误(总共149个)。 页面和出现此错误的页面 self = <RegexURLResolver 'project.urls' (None:None) ^/> @property def reverse_dict(self): language_code =

TLDR:如何从pytest获得更好的输出

我正在使用Django进行常规的Python 3单元测试。 我刚刚切换到pytest django来运行测试

pytest几乎对我所有的测试都抛出一个错误(总共149个)。 页面和出现此错误的页面

self = <RegexURLResolver 'project.urls' (None:None) ^/>

    @property
    def reverse_dict(self):
        language_code = get_language()
        if language_code not in self._reverse_dict:
            self._populate()
>       return self._reverse_dict[language_code]
E       KeyError: 'en-us'
self=
@财产
def反向指令(自身):
语言\代码=获取\语言()
如果语言代码不在self中。\u reverse\u dict:
自我.()
>返回self.\u reverse\u dict[语言\u代码]
E键错误:“en us”
这不是问题所在。这让我走错了路

我的一个
视图.py
文件中出现语法错误。
/manage.py测试
导致:

snip

文件“/home/roland/project/views.py”,第20行 code=zip(列表1、列表2])

SyntaxError:无效语法

请注意最后一个问题:
]

那么:在使用pytest时,如何获得关于问题的更有用的输出

顺便说一句: 找到这个并滚动回pytest输出后,提到了语法错误。它刚刚被隐藏在输出中。

您可以使用该选项,以便它在第一次出现故障时立即停止

另外,确保pytest.ini设置正确,以便pytest知道它应该使用django-pyest

[pytest]
DJANGO_SETTINGS_MODULE='myapp.settings'
对于我的工作流程,我通常会执行以下操作:

  • 运行
    pytest--maxfail=1 myfile.py&>pytest output.txt
  • tail、grep或搜索文本文件以查找错误
  • 修复并迭代

还有许多其他配置选项可以帮助您从pytest获得更有意义的输入

我不经常使用django,但我对pytest的经验是,一旦出现大量错误消息,消息中的某些内容就会被破坏。我通常求助于运行文件或包来检测出什么地方出了问题,并捕获了一个错误,如您的示例中所示。如果pytest能够发挥更多的魔力,那将是一件好事,但它似乎并不擅长于琐碎的错误。这是一个测试可运行代码的工具,不是一个linter,也不是一个调试器。@Roland您可以使用maxfail选项(),以便它在第一次失败时立即停止。您可以使用'--maxfail=1--maxfail=1选项从命令行运行pytest,该选项正确识别了语法错误问题。谢谢,太棒了!当你有机会的时候,你能接受这个答案吗!干杯