小编Jak*_*hem的帖子

鼻子vs pytest - 应该让我选择的(主观)差异是什么?

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

鼻子和pytest都支持这样的东西,因为它们支持许多粒度的固定装置,所以我们正在考虑切换到鼻子或pytest.这两个库都支持"标记"测试并仅运行这些标记的子集,这也是我们也想做的事情.

我一直在仔细查看nose和pytest的文档,据我所知,这些库中较大的部分基本上支持相同的功能,除了它可能命名不同,或者需要稍微不同的语法.另外,我注意到可用插件的一些小差异(鼻子有多进程支持,例如pytest似乎没有)

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

所以我要问一个主观的论证,为什么我应该选择鼻子或pytest来选择最适合我们需要的图书馆/社区组合.

python nose pytest

80
推荐指数
1
解决办法
3万
查看次数

python match只捕获第一组和最后一组 - 我误解了什么吗?

我正在研究一个应该与一系列作者匹配的Python脚本,我正在使用re-module.我遇到了意想不到的事情,我已经能够将它简化为以下非常简单的例子:

>>> import re
>>> s = "$word1$, $word2$, $word3$, $word4$"
>>> word = r'\$(word\d)\$'
>>> m = re.match(word+'(?:, ' + word + r')*', s)
>>> m.groups()
('word1', 'word4')
Run Code Online (Sandbox Code Playgroud)

所以我正在定义一个'基本'正则表达式,它匹配我输入的主要部分,带有一些可识别的功能(在这种情况下我使用了$-signs),而不是我尝试匹配一个单词加上可能的附加单词列表.

我原本预计m.groups()会显示:

>>> m.groups()
('word1', 'word2', 'word3', 'word4')
Run Code Online (Sandbox Code Playgroud)

但显然我做错了什么.我想知道为什么这个解决方案不起作用以及如何改变它,以便我得到我正在寻找的结果.顺便说一句,这是Linux机器上的Python 2.6.6,如果重要的话.

python regex match

4
推荐指数
1
解决办法
1886
查看次数

标签 统计

python ×2

match ×1

nose ×1

pytest ×1

regex ×1