鼻子测试运行器找到除标签之外的所有测试
Posted
技术标签:
【中文标题】鼻子测试运行器找到除标签之外的所有测试【英文标题】:Nose test runner finding all tests except a tag 【发布时间】:2015-08-11 13:21:27 【问题描述】:我试图弄清楚是否有办法让鼻子测试运行器运行所有测试,除了带有特定标签的测试。看起来这对于属性是可能的,但我不知道是否有办法使用标签来做到这一点,标签是属性的子集。
目前我通过调用来使用标签
nosetests -a tags='tag'
我的标记测试如下:
@attr(tags=['foo', 'bar', 'baz'])
def test_some_stuff(self):
但如果我想运行除“baz”标签之外的所有测试,我该怎么做?
我尝试过类似的表达方式
nosetests -A 'not baz'
nosetests -a '!baz'
nosetests tags='!baz'
但是这些似乎对除了属性之外的任何东西都没有任何影响。而且我没有在文档中看到排除标签的示例:http://nose.readthedocs.org/en/latest/plugins/attrib.html
我不想仅仅为了排除我正在使用的这个大型测试套件而添加新标签,并且必须记住始终添加虚假的“排除标签”。
【问题讨论】:
【参考方案1】:您需要展平您的标签。您指定它的方式意味着您有 one 属性,具有复杂的列表值。
相反,将整个标签范围指定为直接属性。
# coding: utf-8
from nose.plugins.attrib import attr
@attr("foo", "bar", "baz")
def test1():
print "I'm test1"
@attr("foo")
def test_2():
print "I'm test2"
然后nosetests -a '!bar' /tmp/test.py
按需要工作。
【讨论】:
啊,有道理。只是在尝试这个想法,感谢帮助!以上是关于鼻子测试运行器找到除标签之外的所有测试的主要内容,如果未能解决你的问题,请参考以下文章