我已经开始处理一个相当大的(多线程)Python项目,其中包含(单元)测试的负载。那里最重要的问题是,运行应用程序需要预设的环境,该环境由上下文管理器实现。到目前为止,我们利用了补丁版本的单元测试运行器,它将在此管理器中运行测试,但是不允许在不同的测试模块之间切换上下文。
鼻子和pytest都支持这种东西,因为它们支持多种粒度的夹具,因此我们正在考虑切换到鼻子或pytest。这两个库都将支持“标记”测试,并且仅运行这些标记的子集,这也是我们也想做的事情。
我一直在浏览一下鼻子和pytest的文档,据我所知,这些库的大部分基本上支持相同的功能,只是它的名称可能不同,或者需要稍微不同的语法。另外,我注意到可用插件中的一些细微差异(鼻子具有多进程支持,例如pytest似乎没有)
看起来,细节决定了魔鬼,这(通常至少)意味着个人品味,我们最好选择最适合我们个人品味的图书馆。
因此,我想提出一个主观的论证,为什么我应该选择鼻子或pytest才能选择最适合我们需求的库/社区组合。