鼻子和皮试-什么(主观的)差异应该让我也选择?

2024-05-14 13:55:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经开始研究一个相当大的(多线程)Python项目,其中包含大量(单元)测试。最重要的问题是运行应用程序需要一个预设的环境,该环境由上下文管理器实现。到目前为止,我们使用了单元测试运行程序的修补版本,该版本将在这个管理器中运行测试,但这不允许在不同的测试模块之间切换上下文。

nose和pytest都支持这一点,因为它们在许多粒度上支持fixture,所以我们正在考虑切换到nose或pytest。这两个库都支持“标记”测试,并且只运行这些标记的子集,这也是我们希望做的事情。

我已经浏览了一些nose和pytest的文档,据我所见,这些库的大部分基本上都支持相同的功能,只是名称可能不同,或者需要稍微不同的语法。另外,我注意到了可用插件中的一些小差异(nose支持多进程,例如pytest似乎不支持)

所以看起来,魔鬼在细节上,这意味着(通常至少)在个人品味上,我们最好选择最符合个人品味的图书馆。

因此,我想请求一个主观的论证,为什么我应该使用nose或pytest来选择最适合我们需要的库/社区组合。


Tags: 模块项目标记程序版本应用程序管理器环境
1条回答
网友
1楼 · 发布于 2024-05-14 13:55:06

我以前用鼻子是因为它是挂架的默认配置。我一点也不喜欢。它在多个地方都有配置卷须,几乎所有的事情似乎都是用一个文档不足的插件来完成的,这使得它更加间接和混乱,而且因为它在默认情况下执行unittest测试,所以它经常中断Unicode回溯,隐藏错误源。

最近几年我对py.test很满意。能够用assert开箱即用的方式编写一个测试,让我讨厌用更少的方式编写测试,而且在核心上破解任何我需要的东西都非常容易。而不是一个固定的插件接口,它只是有一堆挂钩,和相当容易理解的源代码,如果你需要进一步挖掘。我甚至编写了一个适配器,用于在py.test下运行验证测试,并且在验证方面比py.test遇到了更多的问题。

也就是说,我听说nose现在有用于无类测试和断言内省的插件,所以您可能对这两种都很好。不过,我仍然觉得我可以用py.test进行测试,并且我可以理解当它崩溃时发生了什么。

相关问题 更多 >

    热门问题